При размещении среды выполнения PowerShell можно ли преобразовать PSObject
обратно в свой оригинальный тип, как?
Например:
У меня есть командлет, который вызывает WriteObject
и подталкивает коллекцию ClassXzy в конвейере. Когда я вызываю PowerShell.Invoke
из конца узла, я извлекаю коллекцию PSObject
с свойством BaseObject
. Отбрасывание BaseObject
до ClassXyz
завершается с ошибкой.
Есть ли способ сопоставить каждое значение свойства с его соответствующим исходным объектом?
Я предполагаю, что PowerShell делает это как-то, поскольку вы можете передать командлеты PSObject
в командлеты и перевести их в типы параметров. Но как?
Я проводил время, разрываясь на сборках PS с Reflector, но на самом деле не прибил, как происходит эта магия.
Любые идеи?
EDIT: Я забыл одну очень важную деталь. PSObject
, который я тестирую, является удаленным объектом, поэтому тип BaseObject
имеет имя Deserialized.ClassXyz
. Вот почему я вижу такое странное поведение.