phép nói rằng tôi có lớp học nàyđộng thêm các mục vào một danh sách <T> qua phản ánh
class Child {
public string FirstName { get; set; }
public string LastName { get; set; }
}
class Container {
public List<Child> { get; set; }
}
Tôi đang làm việc trên một deserializer các loại và tôi muốn để có thể tạo ra và đưa vào danh sách Child
từ dữ liệu được truy xuất. Tôi đã nhận được này xa (tôi đã cắt bỏ rất nhiều xử lý với nhiều loại khác ví dụ này để nó không cần thiết "iffy" nhưng trần với tôi):
var props = typeof(Container).GetProperties();
foreach (var prop in props) {
var type = prop.PropertyType;
var name = prop.Name;
if (type.IsGenericType) {
var t = type.GetGenericArguments()[0];
if (type == typeof(List<>)) {
var list = Activator.CreateInstance(type);
var elements = GetElements();
foreach (var element in elements) {
var item = Activator.CreateInstance(t);
Map(item, element);
// ??? how do I do list.Add(item) here?
}
prop.SetValue(x, list, null); // x is an instance of Container
}
}
}
tôi không thể tìm ra cách để đúc list
về cơ bản List<t.GetType()>
để tôi có thể truy cập phương thức thêm và thêm mục.
Tôi thích ý tưởng đó. –