Tôi muốn có thể truy cập các giá trị thuộc tính trong một đối tượng như từ điển, sử dụng tên thuộc tính làm khóa. Tôi không thực sự quan tâm nếu các giá trị được trả về như các đối tượng, do đó, Dictionary<string, object>
là tốt. Đây là việc sử dụng dự định:Đối tượng xử lý Giống như từ điển thuộc tính trong C#
object person = new { Name: "Bob", Age: 45 };
IDictionary<string, object> lookup = new PropertyDictionary(person);
string name = (string)person["Name"];
person["Age"] = (int)person["Age"] + 1; // potentially editable
tôi sắp sửa thực hiện lớp của riêng tôi cho điều này, nhưng sau đó tôi bắt đầu nhận thấy lớp học như DynamicObject thực hiện các giao diện IDictionary, khiến suy nghĩ này đã và đang được thực hiện đối với tôi ở đâu đó.
Điều tôi muốn tương tự với chức năng được ASP.NET MVC sử dụng, cho phép sử dụng các loại ẩn danh để đặt thuộc tính thẻ HTML. Tôi có rất nhiều lớp học sử dụng từ điển làm nguồn dữ liệu, nhưng hầu hết thời gian tôi cũng có thể truyền vào các đối tượng.
Vì mục đích này là dành cho mục đích chung library, tôi nghĩ tôi sẽ tạo một lớp có thể tái sử dụng được trang trí đơn giản một đối tượng có giao diện IDictionary. Nó sẽ cứu tôi khỏi việc tạo ra một vụ nổ quá tải.
Something như Indexing trên MSDN ... http://msdn.microsoft.com/en-us/library/6x16t2tx.aspx – Lloyd