从C#动态访问COM

时间:2011-02-15 04:23:51

标签: c# com

我试图从即时编译的C#代码中访问COM对象。

不可能通过常规方式添加程序集引用和“使用”它,任何人都可以指向动态COM查询示例吗?

2 个答案:

答案 0 :(得分:4)

您可以使用System.Activator动态加载COM对象,例如:

Type t = Type.GetTypeFromProgID("CDO.Message");
object obj = Activator.CreateInstance(t);

并使用Type.InvokeMember()来调用对象的方法。

答案 1 :(得分:0)

我知道这适用于Office COM Interop,不确定任何其他库。

我希望你的意思是你想在C#中使用新的dynamic类型?

您需要使用.NET4 no Pia功能:

  1. 添加COM引用,右键单击它。
  2. 点击属性。
  3. 那里应该有选项 - >嵌入互操作程序集。 确保其为真。
  4. 现在,如果你注意到,大多数构造函数和方法都有可选参数,而某些对象(比如我认为的工作表)将是dynamic类型。

    如果您有"Interop Type cannot be embedded error",请参阅此answer

相关问题