2013-03-07 26 views
8

Ví dụ tôi có một giao dịch PSObject với hai thuộc tính: id và transactionName, để nó trông giống như: giao dịch { id: 123 transactionName: tranName1 }sở hữu Truy cập PSObject theo tên trong C#

và tôi muốn trả lại id của giao dịch nếu tên của nó là tranName1.

Có vẻ với tôi rằng trong kịch bản PowerShell, chúng tôi chỉ đơn giản là có thể làm:

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

tuy nhiên trong C# nó sẽ cho lỗi vì nó không thể nhận tài sản theo tên ... bất kỳ ý tưởng làm thế nào để làm điều đó trong C#?

+0

Có lẽ vì tên sở hữu là 'transactionName'? –

+0

@ p.s.w.g ngay cả khi tôi đã sửa tên nó sẽ không hoạt động, vì C# biết giao dịch dưới dạng PSObject, không chứa thành viên của "transactionName" ... – jamesdeath123

+0

Không có mã C# nào được đăng. Dù sao, chỉ cần tìm loại, sau đó [* xem tài liệu *] (http://msdn.microsoft.com/en-us/library/system.management.automation.psobject.aspx) để biết các ý tưởng cơ bản về cách sử dụng tuy nhiên, tôi nghi ngờ rằng việc sử dụng giá trị "giao dịch" được nhập chính xác để bắt đầu sẽ hữu ích hơn. –

Trả lời

18

Hãy thử một cái gì đó như thế này:

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

nó thực hiện thủ thuật! cảm ơn rất nhiều! – jamesdeath123

+0

Tôi biết đây là câu trả lời cũ nhưng về subproperties, ví dụ: $ transaction.transactionName.propertyA – Roberto

+0

@Roberto Nếu 'propertyA' là PSObject bạn có thể làm như sau:' ((PSObject) psobjectvariable.Properties ["transactionName "] .Value) .Properties [" propertyA "]' – AstralisSomnium

Các vấn đề liên quan