需要在.NET中使用反射来调用COM组件

时间:2010-05-19 20:56:50

标签: c# reflection com interop assemblies

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

  1. First“Type”的哪个成员告诉该类型是COM组件,我们可以在运行时使用CLSID?是Type.COMObject吗?
  2. 我需要调用暴露接口的方法,因为他们通过传递CLSID和REFID使用CoCreateInstance在非托管代码中调用...我使用的是InvokeMember,但它返回null或0作为out参数。
  3. 在这种情况下如何传递参数。?是否需要传递参数?因为我的所有COM非托管代码都假设将最后一个参数作为OUT参数,并且在执行之后将结果放入该out参数中。但我已经使用tlbimp.exe将所有非托管COM代码转换为.NET托管程序集。

1 个答案:

答案 0 :(得分:0)

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