涉及泛型时,C#COM接口不可见

涉及泛型时,C#COM接口不可见,c#,generics,inheritance,com,C#,Generics,Inheritance,Com,我在一个涉及大量COM的专业项目中工作,我们遇到以下问题: 使用此代码: [ComVisible(true)] public interface IComFakeCall { } [ComVisible(false)] public class BaseClass<T> { } [ComVisible(true)] public class ComFakeCall : BaseClass<string>, IComFakeCall { } 为什么第一个示例中的界面不

我在一个涉及大量COM的专业项目中工作,我们遇到以下问题:

使用此代码:

[ComVisible(true)]
public interface IComFakeCall { }

[ComVisible(false)]
public class BaseClass<T> { }

[ComVisible(true)]
public class ComFakeCall : BaseClass<string>, IComFakeCall { }
为什么第一个示例中的界面不可见


COM对象和泛型类的继承是否存在已知问题?

COM不支持任何泛型。问题是您公开了太多的类,这是不必要的,因为您似乎已经有了一个很好的默认接口选择。IComFakeCall应该完成任务,希望它不是真的假的。只需通过应用程序进行修复。[ClassInterface(ClassInterfaceType.None)]到类,因此根本不需要公开泛型成员。您好,我想我没有收到您的评论:我对
ComFakeCall
没有任何问题,是接口
IComFakeCall
在我的IDE中不可见。我尝试了
[ClassInterface(ClassInterfaceType.None)]
,但它没有改变任何东西。我看不出你看到了什么,把所有东西都弄假对我没有帮助。VBA根本不支持接口,所以很难猜到您会看到什么。您应该看到添加到IComFakeCall接口的方法。基类和System.Object中没有任何方法。好吧,我对这些方法没有任何问题(我删除了它们以制作一个简明的示例),我看不到的是接口
IComFakeCall
本身。我的意思是,在Excel vba编辑器的“视图\对象浏览器”下,如果我浏览库中的对象,我可以看到界面
IComFakeCall
,在第二种情况下(不涉及泛型),但在第一种情况下,没有任何问题。
[ComVisible(true)]
public interface IComFakeCall { }

[ComVisible(false)]
public class BaseClass { }

[ComVisible(true)]
public class ComFakeCall : BaseClass, IComFakeCall { }