Я делаю что-то вроде ответа на:
Установить свойство объекта с помощью отражения
Динамическая установка значения свойства объекта. У меня есть функция, упаковывающая такого рода функциональность, и она прекрасно работает. Однако я хочу сделать так, чтобы он смотрел на тип свойства, чтобы увидеть, является ли он какой-то коллекцией, и добавил значение / объект в коллекцию.
Я пытался сделать что-то вроде: if (object is ICollection)
Проблема в том, что VS2010 хочет, чтобы я набрал коллекцию, которую я не знаю, как сделать программно.
Итак, я хочу сделать что-то вроде следующего: subject
является целевым объектом, а value
является значением, которое нужно установить:
public void setPropertyOnObject(object subject, string Name, object value)
{
var property = subject.GetType().GetProperty(Name)
// -- if property is collection ??
var collection = property.GetValue(subject, null);
collection.add(value)
// -- if propert is not a collection
property.SetValue(subject, value, null);
}