Как определить строковое представление объекта моего класса в PowerShell?C#

Место общения программистов C#
Anonymous
Как определить строковое представление объекта моего класса в PowerShell?

Сообщение Anonymous »

Я пытаюсь создать несколько командлетов PowerShell на C# и создал класс DataChunk для хранения двоичных данных. Он просто содержит массив byte[]. Целью было прочитать байты из файла в DataChunk, чтобы показать, как мне это нужно. Итак, я написал метод ToString(). Но похоже, что PowerShell его не использует. Почему?

Код: Выделить всё

PS> $data = Read-BinaryData test.bin
PS> $data.GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     False    DataChunk                                System.Object
Вот что мне нужно:

Код: Выделить всё

PS> $data.ToString()
07 65 20 AE F6 8D 4F 00 97 A8 33 C9 81 EB 80 AE 92 87 7D 08
Вот как это работает сейчас:

Код: Выделить всё

PS> $data

Count
-----
20
Класс простой:

Код: Выделить всё

public class DataChunk
{
byte[] data;
public int Count => data.Length;
public override string ToString() { ... }
}
Как сделать так, чтобы мой собственный класс отображался в PowerShell так, как мне нужно?

Подробнее здесь: https://stackoverflow.com/questions/787 ... powershell

Вернуться в «C#»