Powershell - 将自定义对象返回给C#主机

时间:2011-04-26 16:56:23

标签: vb.net powershell

我有以下powershell脚本,它加载一个包含ScriptResult类的自定义.NET DLL,它是从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 个答案:

答案 0 :(得分:2)

a)首先使用

将变量定义到运行时

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

b)也许有助于将$ result标记为全局(未经验证)

$global:result = New-Object TheLibrary.ScriptResult

答案 1 :(得分:1)

GetVariable会返回PSVariable个实例。变量的值在.Value属性中。您可能需要将其DirectCast投射到ScriptResult类型,因为Value会返回Object