Как обращаться к универсальным типам, получая доступ к ним через сборку? - PullRequest
0 голосов
/ 29 июля 2011

Я работаю с размещенным CLR для доступа к .NET-сборке.Эта сборка содержит общие типы, такие как:

MyGenericClass<MyClass>  // C# notation

Где spAssembly является моей размещенной и загруженной сборкой, мне нужно получить этот тип через строку (bstrClassName).

spAssembly->GetType_2(bstrClassName, &spType);  // C++-Access via hosted Assembly

Так что теперь мне нужнознать, как форматировать строку имени класса.Для обычных классов я использую что-то вроде

MyNamespace.MySubNamespace.MyClass  // Full adressing for the query.

Наверное, мне нужно обратиться к этому так:

MyNamespace.MyGenericClass<MyNamespace.MySubNamespace.MyClass>

Но это не работает.Любая идея?Может быть, неправильный синтаксис?

1 Ответ

1 голос
/ 29 июля 2011

Обобщения в .Net работают не так, как шаблоны C ++. Вы должны сначала получить универсальный тип, а затем сгенерировать из него конкретный тип. Поэтому сначала нужно получить MyGenericClass и использовать MakeGenericType , передав MyClass в качестве параметра.

...