2013-03-07 11 views
8

Per esempio io ho una transazione PSObject con due proprietà: id e transactionName, in modo che assomiglia a: transazione { id: 123 transactionName: tranName1 }proprietà di accesso PSObject per nome in C#

ed io vuoi restituire l'id della transazione se il suo nome è tranName1.

Sembra a me che negli script PowerShell, possiamo semplicemente fare:

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

tuttavia in C# che darà errore in quanto non in grado di riconoscere la proprietà per nome ... tutte le idee come farlo in C#?

+0

Forse perché il nome della proprietà è 'transactionName'? –

+0

@ p.s.w.g anche io ho corretto il nome non funzionerà, perché C# conosce la transazione come PSObject, che non contiene un membro di "transactionName" ... – jamesdeath123

+0

Non c'è nessun codice C# pubblicato. In ogni caso, trova il tipo, quindi [* guarda la documentazione *] (http://msdn.microsoft.com/en-us/library/system.management.automation.psobject.aspx) per le idee di base su come utilizzare Tuttavia, sospetto che l'utilizzo di un valore di "transazione" correttamente dattiloscritto per iniziare sia più utile. –

risposta

18

provare qualcosa di simile:

psobjectvariable.Properties["transactionName"].Value 
+0

fa il trucco! molte grazie! – jamesdeath123

+0

So che questa è una vecchia risposta ma, per quanto riguarda le sottoproprietà, ad esempio: $ transaction.transactionName.propertyA – Roberto

+0

@Roberto Se 'propertyA' è un oggetto PSO puoi fare così:' ((PSObject) psobjectvariable.Properties ["transactionName "] .Value) .Properties [" propertyA "]' – AstralisSomnium

Problemi correlati