我遇到了一些我正在编写的.NET组件的问题,这些问题旨在暴露给COM。COM互操作性和继承
要公开的类从基类继承,这两个类都将ComVisible属性设置为true。基类没有什么特别 - 它包含2个属性,我用它来帮助抽象一些数据库代码。
我可以注册程序集并键入lib就好了。然而,当我试图将类实例,我得到以下异常从被叫抛出:
错误IDispatch.Invoke():0x80020101
我决定来调试它在CScript.exe中,我得到了同样的错误。所以我重写了没有基类的类,现在我可以创建没有问题的实例。
为了公开从同一命名空间中的另一个.NET类继承的.NET类,我需要做额外的工作吗?
基类是否在同一个DLL中? – Stu 2012-02-10 22:01:01
如果使父类不可见,会发生什么情况。 – Chriseyre2000 2012-02-10 22:01:54
有一件令人沮丧的事情是,在EventViewer中似乎没有任何日志信息;它刚刚死亡。另外,我在第一次尝试时没有在基类中指定ComVisible,它仍然导致相同的错误(它实际上在VS2010调试器中显示为“未知错误”,但我知道基于应用程序调用抛出的异常的内容该类) – 2012-02-10 22:17:08