tôi muốn truy cập giá trị của một dynamic
C# bất động sản với một chuỗi:Nhận giá trị của bất động sản năng động C# qua chuỗi
dynamic d = new { value1 = "some", value2 = "random", value3 = "value" };
Làm thế nào tôi có thể nhận được giá trị của d.value2 ("ngẫu nhiên ") nếu tôi chỉ có" value2 "dưới dạng chuỗi? Trong javascript, tôi có thể làm d ["value2"] để truy cập vào giá trị ("ngẫu nhiên"), nhưng tôi không chắc chắn làm thế nào để làm điều này với C# và phản ánh. Gần nhất tôi đến là:
d.GetType().GetProperty("value2")
... nhưng tôi không biết cách lấy giá trị thực tế từ đó.
Như mọi khi, cảm ơn sự giúp đỡ của bạn!
Lưu ý rằng đây không phải là mục đích của "động" và kịch bản này không hoạt động tốt hơn với "động" hơn so với "đối tượng". "dynamic" làm cho nó có thể truy cập các thuộc tính khi tên * của thuộc tính được biết tại thời gian biên dịch nhưng * type * thì không. Vì bạn không biết tên cũng như loại tại thời gian biên dịch, năng động sẽ không giúp bạn. –
Có thể có liên quan: http://stackoverflow.com/questions/5877251/lookup-property-in-object-graph-via-a-string. – DuckMaestro
@EricLippert Tôi biết câu hỏi này cũ nhưng chỉ để đưa ra nhận xét trong trường hợp ai đó nhìn thấy nó trong tương lai. Trong một số trường hợp, bạn không thể chọn sử dụng động hay đối tượng (ví dụ khi sử dụng trình phân tích cú pháp JSON) và bạn vẫn có thể muốn lấy các thuộc tính từ một chuỗi (từ tệp cấu hình chẳng hạn). như người ta có thể nghĩ ban đầu. – Pedrom