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