如何在C#中创建COM对象的实例?

时间:2017-05-31 16:12:56

标签: c# com

Visual Basic有GetObject函数,可以像这样使用

Set app = GetObject(, "Word.Application") 

1C Enterprise还有一个new COMObject()运算符,它也接受一个普通的字符串并返回一个相应的COM对象。

此功能的C#等价物是什么?

2 个答案:

答案 0 :(得分:0)

我在GetObject命名空间中找到了相同的Microsoft.VisualBasic函数。 Haven对此感到满意,我已经反编译了该函数,并发现了它如何创建COM对象:Marshal.GetActiveObjectActivator.CreateInstance

要反映COM对象,可以使用Oleauto.h中的IDispatch::GetTypeInfo方法。 CodeProject上的C#还有一个整洁的包装器。

某些对象,如1C Automation(" V83.Application")似乎不能立即与C#dynamic一起使用。为了解决这个问题,我创建了一个类并继承自System.Dynamic.DynamicObject。这使我可以覆盖InvokeMethod并在其上调用IDispatch::Invoke

答案 1 :(得分:0)

您可以使用Activator.CreateInstance(string Progid)方法通过传递COM类的Prog id来创建COM对象