C# 无法从Powershell调用方法获取PSVariable

C# 无法从Powershell调用方法获取PSVariable,c#,powershell,C#,Powershell,我正在远程系统上运行C#PowerShell代码,需要获取局部变量的值。PowerShell有一个名为Get Variable的cmdlet,我正在尝试使用它。这是我尝试获取PSVariables的相关集合(显然应该只包含一个)的代码: 有人知道怎么解决这个问题吗 另外,我知道StackOverflow上提到的SessionStateProxy方法,但由于某些原因,它不适用于我的场景。当涉及PowerShell远程处理时,只有少数知名类型使用类型保真度反序列化,System.Management

我正在远程系统上运行C#PowerShell代码,需要获取局部变量的值。PowerShell有一个名为
Get Variable
的cmdlet,我正在尝试使用它。这是我尝试获取PSVariables的相关集合(显然应该只包含一个)的代码:

有人知道怎么解决这个问题吗


另外,我知道StackOverflow上提到的SessionStateProxy方法,但由于某些原因,它不适用于我的场景。

当涉及PowerShell远程处理时,只有少数知名类型使用类型保真度反序列化,
System.Management.Automation.PSVariable
不在其中

所有其他类型的实例反序列化为原始对象的无方法模拟,如
[psobject]
具有包含原始属性值静态副本的属性的实例。
在PowerShell中,这些实例将其类型名报告为原始类型名,前缀为反序列化的

有关背景信息,请参阅

处理此类对象的最简单方法是通过DLR:

dynamic v = psShell.Invoke();

然后,您可以像往常一样访问属性(尽管使用运行时绑定),例如,
v.Name

我无法在PowerShell中复制此属性。我使用泛型方法返回变量。您是否尝试将
var v
设置为
System.Collections.ObjectModel.Collection
?请看,我的意思是将
var
更改为
System.Collections.ObjectModel.Collection
。虽然我没有尝试过,但它应该没有帮助,因为使用
var
会自动推断出正确的数据类型。。这是它自己的观点!我知道,我只是想看看是否发生了一些奇怪的事情,并明确地声明该对象起了作用。无论如何,你都有答案。如果你的问题还没有完全回答,请考虑回答或提供反馈。
Cannot convert the "System.Management.Automation.PSVariable" value of type "Deserialized.System.Management.Automation.PSVariable" to type "System.Management.Automation.PSVariable".
dynamic v = psShell.Invoke();