Создание универсального типа из строки - PullRequest
3 голосов
/ 06 января 2011

У меня есть строка, содержащая имя универсального класса с указанным типом:

string s = "GenericRouteHandler<MemberHandler>";

Как мне создать экземпляр из этой строки? Я знаю, как создать конкретный класс с помощью Type.GetType (), а затем использовать Activator, но я не уверен, куда обратиться с универсальным классом.

1 Ответ

2 голосов
/ 06 января 2011

Как это typeof(GenericRouteHandler<>).MakeGenericType(typeof(MemberHandler));

Конечно, если у вас нет типов, вы должны использовать Type.GetType(string), чтобы получить тип вместо typeof.

РЕДАКТИРОВАТЬ : Затем вы должны активировать тип Activator.CreateInstance() или вызвать конструктор, если знаете подпись myGenericType.GetConstructor(ctorArgsTypes).Invoke(ctorParams);;это может быть быстрее, если кешировать константы, это может быть быстрее, чем Activator.CreateInstance ()

msdn

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...