【问题标题】:Need to call COM component using reflection in .NET需要在 .NET 中使用反射调用 COM 组件
【发布时间】:2011-02-21 14:22:29
【问题描述】:

我需要确定 COM 组件(非托管代码)类型并在运行时使用 C# 中的反射调用公开接口的方法。

  1. 首先“Type”的哪个成员告诉我们该类型是 COM 组件并且我们可以在运行时获取 CLSID?是 Type.COMObject 吗?
  2. 我需要调用公开接口的方法,因为它们使用 CoCreateInstance 通过传递 CLSID 和 REFID 在非托管代码中调用...我正在使用 InvokeMember,但它返回 null 或 0 作为 out 参数。

在这种情况下如何传递参数。?是否需要传递参数?因为我所有的 COM 非托管代码都假设将最后一个参数作为 OUT 参数,并在执行后将结果放入该输出参数中。但我已经使用 tlbimp.exe 将所有非托管 COM 代码转换为 .NET 托管程序集。

【问题讨论】:

  • 我从未听说过 C#.NET。你从哪里听说的。

标签: c# reflection com interop assemblies


【解决方案1】:

这个问题是在一年前提出的,所以我不知道它的相关性如何,但这有帮助吗? C# 4.0 'dynamic' doesn't set ref/out arguments

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-02
    • 2012-02-19
    • 2013-03-23
    • 2013-04-25
    • 2011-09-18
    • 2011-02-15
    • 1970-01-01
    相关资源
    最近更新 更多