Powershell - вернуть пользовательский объект на хост C # - PullRequest
3 голосов
/ 26 апреля 2011

У меня есть следующий скрипт powershell, который загружает пользовательскую DLL-библиотеку .NET, в которой содержится класс ScriptResult, и он исполняется из приложения VB.NET.

Add-Type -Path $myLibPath

$result = New-Object TheLibrary.ScriptResult

В приложении VB.NET я хочу получить объект результата, но следующее, похоже, не работает

'get the script result
Dim result As ScriptResult = run.SessionStateProxy.GetVariable("result")

Что я не правильно делаю?

Ответы [ 2 ]

2 голосов
/ 26 апреля 2011

a) сначала определите переменную для среды выполнения с помощью

run.SessionStateProxy.SetVariable("result", null)

b) возможно, может помочь пометить $ result как глобальный (не проверено) :

$global:result = New-Object TheLibrary.ScriptResult

1 голос
/ 26 апреля 2011

GetVariable возвращает экземпляр PSVariable. Значение переменной находится в свойстве .Value. Вам, вероятно, нужно будет привести его (DirectCast) к вашему типу ScriptResult, так как Value возвращает Object.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...