C# 在C中按名称访问PSObject属性#
例如,我有一个PSObject事务,它有两个属性:id和transactionName,因此它看起来像: 交易{ 身份证号码:123 transactionName:tranName1 } 如果事务名为tranName1,我想返回事务的id 在我看来,在powershell脚本中,我们只需执行以下操作: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#中,它将给出错误,因为它无法通过名称识别属性。
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”]