通过.NET手动调用COM对象的方法

11

在.NET中,有没有一种手动调用GAC中COM对象的方法,而不需要将其添加为引用?

我问这个问题的原因是我只知道如何用C#编写代码,并希望调用一个.NET COM对象并测试其CMO调用是否可见,但显然你无法将.NET COM对象添加到.NET程序集中!因为您必须引用它,因此我想知道如果它通过C#代码手动注册到GAC中,是否可以调用它?

1个回答

20
Type myType = Type.GetTypeFromProgID("IMyLib.MyClass");
object obj = Activator.CreateInstance(myType);
object[] args = new object[2];
args[0] = "Hello";
args[1] = 3;
myType.InvokeMember("MyMethod", BindingFlags.InvokeMethod, obj, args);
在 .Net 4 中类似以下代码:
Type myType = Type.GetTypeFromProgID("IMyLib.MyClass");
dynamic obj = Activator.CreateInstance(myType);
obj.MyMethod("Hello", 3);

我编辑了这篇文章,我也没有安装VS 2010,但是据我所知,这是正确的做法。 - Arsen Mkrtchyan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接