【发布时间】:2011-11-18 12:13:35
【问题描述】:
我已经实现了一个 c# IDispatch 接口以允许后期绑定到我的托管代码。当某些第三方程序而不是其他程序调用时,它似乎可以工作。它没有进入托管代码部分以输出调试信息。很可能某些接口描述(我从 c++ 转换而来)是不正确的,因此它没有触及代码。是否可以识别第三方软件试图调用的方法?
谢谢
编辑:为了尽量让问题不那么模糊,我将描述症状。我编写了一个测试用例,可以很好地调用 IDispatch 库。它适用于第三方软件。当我第二次运行它时,它会吐出一个错误,但没有关于它在发生错误时尝试调用什么函数的信息。接口中有大约 100 个函数,所以我能想到的唯一选择是按照建议尝试从一些测试代码中调用所有这些函数。这两个第三方软件都是非托管代码。
【问题讨论】:
-
这是非常模糊的。只是不要,让 CLR 为您实现它。将 [InterfaceType(ComInterfaceType.InterfaceIsDual)] 属性应用于您的接口声明。
-
@Hans 是的,我知道这很模糊。我无法获得足够的信息来将其缩小为一个合理的问题。