2013-12-05 2 views
0

Есть ли способ в C# получить определение типа из строки? Я бы хотел использовать его как параметр общего типа.Общий класс с параметром общего типа, хранящимся в строке

Это то, чего я хотел бы достичь в конце.

 

    string classname = "Class1"; 
    GenericClass<Class1> gc = new GenericClass<Class1>(); 
    gc.Method(); 

есть ли какой-либо способ?

+0

Вы хотите создать тип на лету? – Renan

+0

Вы можете создать экземпляр, но с этого момента вы будете вынуждены работать с ним с помощью отражения (если нет дополнительной информации, которую вы не указали), то есть вы не можете написать 'gc.Method()'. Это будет медленным, и компилятор не сможет поймать какие-либо ошибки, которые вы совершаете. Вы уверены, что это то, что вам нужно сделать? – Jon

ответ

3

Да, вы можете использовать отражение, чтобы сделать это, и иногда это не может быть слишком безопасным, попробуйте что-то вроде этого article sample.

Type d1 = typeof(GenericClass<>); 

Type[] typeArgs = { Type.GetType("Class1") }; 

Type makeme = d1.MakeGenericType(typeArgs); 

object o = Activator.CreateInstance(makeme); 

Но вы не получите все intellisense из визуальной студии.

Смежные вопросы