c# - 如何通过 Assembly 访问泛型类型来解决它们?

标签 c# c++ generics assemblies native

我正在使用托管 CLR 来访问 .NET-Assembly。此程序集包含以下泛型类型:

MyGenericClass<MyClass>  // C# notation

spAssembly 是我托管和加载的程序集,我需要通过字符串 (bstrClassName) 获取此类型。

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

所以现在我需要知道如何格式化类名字符串。对于常规类(class),我使用类似

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

我想我必须这样解决:

MyNamespace.MyGenericClass<MyNamespace.MySubNamespace.MyClass>

但这行不通。任何想法?也许语法错误?

最佳答案

.Net 中的泛型与 C++ 模板不同。您必须先获取通用类型,然后从中生成具体类型。所以你首先必须得到 MyGenericClass 并使用 MakeGenericTypeMyClass 作为参数传递。

关于c# - 如何通过 Assembly 访问泛型类型来解决它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877214/

相关文章:

SpriteKit 的 swift 协议(protocol)初始化函数错误

c# - 从原始波形数据中检测特定频率/音调

c# - 如何将字符串(红色、蓝色、黑色)转换为字符串数组?

c++ - 从控制台应用程序动态使用 DLL

swift - 带有关联值的枚举 + 泛型 + 带有关联类型的协议(protocol)

c++ - 在模板链表中没有调用查找的匹配函数

javascript - 如何在 C# Envelope->Error 中反序列化 XML

c# - ASP.NET - 如何使用 MVC 模式通过服务器端代码 (C#) 加载页面?

c++ - 将 enable_if 与结构特化一起使用

c++ - Arduino:尝试将 Char[] 转换为字符串时为空字符串