Инициализация generic классов используя System.Type - C#
Формулировка задачи:
Здравствуйте.
Есть метод который возвращает через делегат имена свойств объекта и ссылку на сами свойства в виде object.
Возникла ситуация в которой свойства объекта generic классы. Приведу на примере листов.
Generic не может принять объект Type, подскажите как решить задачу).
public static void GetProperties <T>(T target, PropertiesHandler handler)
{
Type type = target.GetType();
PropertyInfo[] propInfos = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
for (int i = 0; i < propInfos.Length; i++)
{
handler(propInfos[i].Name, propInfos[i].GetValue(target),i);
}
}public delegate void PropertiesHandler(string prpertyName, object value, int index);
GetProperties ( myObject , (string name, object value, int index) =>
{
Type type = typeof (value);
(value as List <type >) = new List<type>(mydata);
});Решение задачи: «Инициализация generic классов используя System.Type»
textual
Листинг программы
Type type = typeof (value); Type listType = typeof(List<>).MakeGenericType(type); IList list = (IList)Activator.CreateInstance(listType);