为了这个问题,这是我的通用类。
[ComVisible(true)]
public class HtmlTable<T> where T : class
{
List<T> listToConvert;
public HtmlTable(List<T> listToConvert)
{
this.listToConvert = listToConvert;
}
}
本质上,这个类负责将类 T 的列表转换为 HTML 表(我省略了生成部分)。我得到的错误是
Generic classes may not be exposes to COM.
我已经阅读了几篇关于这个问题的帖子,但我并不真正理解它们。需要更改/添加什么才能使用此类?
谢谢。
最佳答案
COM 没有泛型的概念,因此不能向 COM 公开泛型类。
您可以做的是创建一个通用父类(super class)型,然后创建该通用父类(super class)型的非通用特定实现以向 COM 公开。
一个简单的例子:
public class HtmlTable<T> where T : class
{
List<T> listToConvert;
public HtmlTable(List<T> listToConvert)
{
this.listToConvert = listToConvert;
}
}
[ComVisible(true)]
public class StringHtmlTable : HtmlTable<String>
{
// implementation goes here
}
关于c# - 使用泛型将类库 DLL 公开给 COM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2008786/