Generics 在服务组件上使用通用列表

Generics 在服务组件上使用通用列表,generics,com,list,Generics,Com,List,我正在尝试将泛型列表用作ServicedComponent类上的属性 public class MyCOM : ServicedComponent { public enum MyEnumType { Value1, Value2, Value3 } public List<MyEnumType> MyList { private set; get; } public MyCOM() { MyList = new

我正在尝试将泛型列表用作
ServicedComponent
类上的属性

public class MyCOM : ServicedComponent {
    public enum MyEnumType {
        Value1, Value2, Value3
    }
    public List<MyEnumType> MyList { private set; get; }
    public MyCOM()
    {
        MyList = new List<MyEnumType>();
    }
}
公共类MyCOM:ServicedComponent{
公共枚举MyEnumType{
值1、值2、值3
}
公共列表MyList{private set;get;}
公共真菌()
{
MyList=新列表();
}
}
代码编译时没有错误,但是当我尝试使用来自不同类的com对象的
MyList
属性时,列表中没有添加任何值。谷歌“告诉我”我不能在组件上使用泛型,但我还没有找到一个很好的解释和解决问题的好办法

有人能帮我吗?

来自MSDN:

COM模型不支持 泛型类型的概念。 因此,不能使用泛型类型 直接用于COM互操作

不支持泛型的原因很简单,泛型是在运行时构造的类型,因此没有COM可以引用的构造类型的静态接口声明。在您的案例列表中,在CLR构造它之前不作为类型存在,因此COM不能使用和标识符(GUID)引用它

这就是解决方法的来源,如果泛型类型实现了非泛型接口,那么它们可以使用非泛型接口用于com互操作