C# 使用泛型向COM公开类库DLL
为了回答这个问题,这里是我的泛型类C# 使用泛型向COM公开类库DLL,c#,generics,.net-3.5,com,C#,Generics,.net 3.5,Com,为了回答这个问题,这里是我的泛型类 [ComVisible(true)] public class HtmlTable<T> where T : class { List<T> listToConvert; public HtmlTable(List<T> listToConvert) { this.listToConvert = listToConvert; } } 我已经读过几篇关于这个问题的帖子,但是我
[ComVisible(true)]
public class HtmlTable<T> where T : class
{
List<T> listToConvert;
public HtmlTable(List<T> listToConvert)
{
this.listToConvert = listToConvert;
}
}
我已经读过几篇关于这个问题的帖子,但是我并不真正理解它们。为了能够使用该类,需要更改/添加哪些内容
谢谢。COM没有泛型的概念,因此泛型类不能向COM公开 您可以做的是创建一个泛型超类型,然后创建该泛型超类型的非泛型特定实现以向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
}
公共类HtmlTable,其中T:class
{
列表转换;
公共HtmlTable(列表列表转换)
{
this.listToConvert=listToConvert;
}
}
[ComVisible(true)]
公共类StringHtmlTable:HtmlTable
{
//实现就在这里
}
COM没有泛型的概念,因此泛型类不能向COM公开
您可以做的是创建一个泛型超类型,然后创建该泛型超类型的非泛型特定实现以向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
}
公共类HtmlTable,其中T:class
{
列表转换;
公共HtmlTable(列表列表转换)
{
this.listToConvert=listToConvert;
}
}
[ComVisible(true)]
公共类StringHtmlTable:HtmlTable
{
//实现就在这里
}
我很确定你也不能有泛型基类?我很确定你也不能有泛型基类?