为了这个问题,这是我的通用类。
[ComVisible(true)]
public class HtmlTable<T> where T : class
{
List<T> listToConvert;
public HtmlTable(List<T> listToConvert)
{
this.listToConvert = listToConvert;
}
}
本质上,这个类负责将类T的List转换为HTML表(我省略了生成部分)。我得到的错误是
Generic classes may not be exposes to COM.
我已经阅读了几篇关于这个问题的帖子,但是我并不是真的了解它们。需要更改/添加什么才能使用此类?
谢谢。
答案 0 :(得分:5)
COM没有泛型的概念,因此通用类不能暴露给COM。
您可以做的是创建一个Generic超类型,然后创建该Generic超类型的非泛型特定实现以向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
}