Отражение, дженерики и несколько сборок - PullRequest
0 голосов
/ 06 апреля 2011

Я пытаюсь решить эту проблему:

Type.GetType("Class1'[[Class2]]")

, где Class1 и Class2 находятся в разных сборках.

Я могу разобрать сборкии найти тип Class1, а также тип Class2, но как мне получить тип Class1<Class2>?

Ответы [ 2 ]

2 голосов
/ 07 апреля 2011

, если вы можете найти все, что вам нужно, это:

Type class1Type = assembly1.GetType("Class1"); //or however you are able to get this type
Type class2Type = assembly2.GetType("Class2"); //or however you are able to get this type
Type genericType = class1Type.MakeGenericType(class2Type);

genericType будет похож на typeof(Class1<Class2>)

1 голос
/ 06 апреля 2011

Я думаю, это должно выглядеть так:

Type.GetType("Class1`1[Class2]");

Примечание: я изменил апостроф с 'на `и добавил число общих аргументов.

Если этого недостаточно, попробуйте указать классы, включая пространство имен и сборку:

Type.GetType("Namespace1.Class1`1[[Namespace2.Class2, Assembly2]], Assembly1");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...