2017-04-06 172 views
1

我已经在C#中编写了一个类库(.dll),这是从第三方.exe调用的。 .exe在我的.dll中调用一个方法,将COM对象传递给我的方法。由于各种原因,我无法访问此COM对象的等效类定义,但我可以使用这个方便的DispatchUtility class tool来发现其公共方法和属性。我希望创建一个extern class的定义,所以我可以访问这些成员,但正如我发现的那样,C#不允许这样做。从COM对象访问类

访问这些班级成员的最佳方式是什么?

+0

你的代词和thises和thats都混在一起,很难理解你在问什么。我认为你需要做的只是获得COM对象的IDispatch接口并从中调用Invoke。看看汉斯在这篇文章中回答:http://stackoverflow.com/questions/8068449/calling-a-member-of-idispatch-com-interface-from-c-sharp –

+0

@JoeWillcoxson我很乐意编辑澄清 - 什么是第一夫妇的事情是模糊的?我也会看看这个问答。 – Conrad

回答

0

如果您知道方法名称和参数类型,则可以使用dynamic

dynamic o = theComObject; 
o.SomeMethod(arg1, arg2, arg3); 
var v = o.SomeProperty;