【发布时间】:2011-02-21 14:22:29
【问题描述】:
我需要确定 COM 组件(非托管代码)类型并在运行时使用 C# 中的反射调用公开接口的方法。
- 首先“Type”的哪个成员告诉我们该类型是 COM 组件并且我们可以在运行时获取 CLSID?是 Type.COMObject 吗?
- 我需要调用公开接口的方法,因为它们使用 CoCreateInstance 通过传递 CLSID 和 REFID 在非托管代码中调用...我正在使用 InvokeMember,但它返回 null 或 0 作为 out 参数。
在这种情况下如何传递参数。?是否需要传递参数?因为我所有的 COM 非托管代码都假设将最后一个参数作为 OUT 参数,并在执行后将结果放入该输出参数中。但我已经使用 tlbimp.exe 将所有非托管 COM 代码转换为 .NET 托管程序集。
【问题讨论】:
-
我从未听说过 C#.NET。你从哪里听说的。
标签: c# reflection com interop assemblies