Я пытаюсь использовать задание powershell, чтобы создать объект TreeView и вернуть его, вместо этого я получаю тип PSObject каждый раз, когда задание заканчивается.
Я пытался вернуть объект TreeView разными способами, например, добавив [System.Windows.Forms.TreeView] перед именем переменной в строке возврата или как часть массива, ничего не возвращает ожидаемый результат
$job = Start-Job -ScriptBlock{
Add-Type -AssemblyName System.Windows.Forms
$Tree = New-Object System.Windows.Forms.TreeView
Return $Tree
}
Wait-Job $job
$Output = Receive-Job $job
$Output.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True PSObject System.Object
$Output
к ожидаемому типу[System.Windows.Forms.TreeView]$Output
. - person JosefZ   schedule 15.05.2019$Output | Get-Member
, чтобы увидеть базовый объект (Deserialized.System.Windows.Forms.TreeView
). Вы можете получить доступ ко всем ожидаемым свойствам обычным способом:$Output.Nodes
. Обратите внимание, что, как уже указывалось, это не «живой» объект, поскольку он был десериализован как часть задания, поэтому будет иметь некоторые ограничения (в основном отсутствие методов). - person boxdog   schedule 15.05.2019