05.03.2009

Создание экземпляра объекта по его типу в C#

Используя рефлексию (reflection) можно создать следующий метод:


private static List<TEntityType> CreateObjects<TEntityType>(
Type realType)
{
ConstructorInfo constructor;
TEntityType entity;

constructor = realType.GetConstructor(Type.EmptyTypes);
if (constructor != null)
{
entity = (TEntityType)constructor.Invoke(new object[0]);
}
else // если конструктор содержит параметры
{
constructor = realType.GetConstructor(
new Type[] { <тип>, <тип>, ... });
entity = (TEntityType)constructor.Invoke(
new object[] { <аргумент>, <аргумент>, ... });
}
return entity;
}

Комментариев нет: