在.NET中动态创建COM类的实例

时间:2009-06-26 15:35:03

标签: .net com interop

我可以加载在我的机器上注册的COM DLL,如下所示:

Type type = Type.GetTypeFromProgID("MYCOMDLL.ClassName");
object boxed = Activator.CreateInstance(type);

然后我可以调用方法等。

如何从未在我的计算机上注册的DLL文件实现此目的?

像这样的魔术师:

Type type = Type.GetTypeFromFile("MyFile.dll", "MYCOMDLL.ClassName");
object boxed = Activator.CreateInstance(type);

这可能吗?

3 个答案:

答案 0 :(得分:1)

您必须先(a)以传统方式注册DLL,或者(b)使用免注册COM清单文件进行清理。

这可能有助于(b) - http://msdn.microsoft.com/en-us/library/ms973913.aspx

答案 1 :(得分:0)

我发现这个链接可能有你想要的东西:

Dynamically calling an unmanaged dll from .NET (C#)

看起来你可以在它周围包装一个助手类。

答案 2 :(得分:0)

阅读类似问题here并查看我和作者的评论。