Tôi biết có một số câu hỏi giải quyết vấn đề này, nhưng câu trả lời thường đi theo dòng đề xuất Từ điển hoặc Bộ sưu tập các tham số, điều này không hoạt động trong tình huống của tôi.
Tôi đang sử dụng một thư viện hoạt động thông qua sự phản chiếu để làm nhiều việc thông minh với các đối tượng có thuộc tính. Điều này hoạt động với các lớp đã xác định, cũng như các lớp động. Tôi cần tiến thêm một bước nữa và làm điều gì đó dọc theo những dòng sau:
public static object GetDynamicObject(Dictionary<string,object> properties) {
var myObject = new object();
foreach (var property in properties) {
//This next line obviously doesn't work...
myObject.AddProperty(property.Key,property.Value);
}
return myObject;
}
public void Main() {
var properties = new Dictionary<string,object>();
properties.Add("Property1",aCustomClassInstance);
properties.Add("Property2","TestString2");
var myObject = GetDynamicObject(properties);
//Then use them like this (or rather the plug in uses them through reflection)
var customClass = myObject.Property1;
var myString = myObject.Property2;
}
Thư viện hoạt động tốt với kiểu biến động, với các thuộc tính được gán thủ công. Tuy nhiên tôi không biết có bao nhiêu hoặc những thuộc tính nào sẽ được thêm vào trước.