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
{
//实现就在这里
}

我很确定你也不能有泛型基类?我很确定你也不能有泛型基类?