【问题标题】:Accessing class from COM Object从 COM 对象访问类
【发布时间】:2017-04-06 13:46:26
【问题描述】:

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

访问这些班级成员的最佳/“正确”方式是什么?

【问题讨论】:

  • 你的代词和thises和thats都混在一起了,很难理解你在问什么。我认为您需要做的只是获取 COM 对象的 IDispatch 接口并从中调用 Invoke。看看汉斯在这篇文章中的回答:stackoverflow.com/questions/8068449/…
  • @JoeWillcoxson 我很乐意为澄清而进行编辑 - 前几件事是模棱两可的?我也会看看那个问答。

标签: c# com comobject


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 2010-10-12
    • 1970-01-01
    • 2011-06-07
    • 2016-08-12
    相关资源
    最近更新 更多