Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中按名称访问PSObject属性#_C#_Powershell_Psobject - Fatal编程技术网

C# 在C中按名称访问PSObject属性#

C# 在C中按名称访问PSObject属性#,c#,powershell,psobject,C#,Powershell,Psobject,例如,我有一个PSObject事务,它有两个属性:id和transactionName,因此它看起来像: 交易{ 身份证号码:123 transactionName:tranName1 } 如果事务名为tranName1,我想返回事务的id 在我看来,在powershell脚本中,我们只需执行以下操作: if $transaction.transactionName -eq tranName return $transaction.id 但是在c#中,它将给出错误,因为它无法通过名称识别属性。

例如,我有一个PSObject事务,它有两个属性:id和transactionName,因此它看起来像: 交易{ 身份证号码:123 transactionName:tranName1 }

如果事务名为tranName1,我想返回事务的id

在我看来,在powershell脚本中,我们只需执行以下操作:

if $transaction.transactionName -eq tranName return $transaction.id

但是在c#中,它将给出错误,因为它无法通过名称识别属性。。。有没有办法用c#?

试试这样的方法:

psobjectvariable.Properties["transactionName"].Value

这是我没想到会起作用的东西,但它确实起了作用

dynamic x = psobjectvariable;
Console.Write(x.transactionName);

可能是因为属性名是
transactionName
?@p.s.w.g,即使我更正了名称,它也不会起作用,因为C#知道事务是PSObject,它不包含“transactionName”的成员……没有发布C#代码。不管怎样,只要找到类型,然后了解如何使用它的基本想法。。但是,我怀疑首先使用正确键入的“transaction”值会更有用。@pst Mike Shepard为我的答案提供了解决方案:)谢谢您的分享:)我知道这是一个旧答复,但是,子属性呢,例如:$transaction.transactionName。propertyA@Roberto如果
propertyA
是一个PSObject,您可以这样做:
((PSObject)psobjectvariable.Properties[“transactionName”].Value.Properties[“propertyA”]