keyoke
keyoke

Reputation: 1209

Powershell - return custom object to C# host

I have the following powershell script which loads a custom .NET DLL this contains the ScriptResult class, it is intern executed from a VB.NET app.

Add-Type -Path $myLibPath

$result = New-Object TheLibrary.ScriptResult

In the VB.NET app I want to get the result object but the following doesnt seem to work

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

What am I not doing correctly?

Upvotes: 3

Views: 1017

Answers (2)

x0n
x0n

Reputation: 52440

GetVariable returns a PSVariable instance. The variable's value is in the .Value property. You'll probably need to cast it (DirectCast) to your ScriptResult type as Value returns an Object.

Upvotes: 1

Tomas Panik
Tomas Panik

Reputation: 4609

a) define the variable to the runtime first with

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

b) maybe could help to mark $result as global (not verified):

$global:result = New-Object TheLibrary.ScriptResult

Upvotes: 2

Related Questions