2010-07-14 35 views
10

如何在不引用库的情况下从程序标识符或ProgID(如“Word.Application”)在C#4.0中创建动态COM/OLE/ActiveX对象?C#4的CreateObject等价物,动态关键字和后期绑定?

在C#3.5我不得不写类似

Type comObjectType = Type.GetTypeFromProgID(progId, true); 
Activator.CreateInstance(comObjectType); 

是否有更简单的方法来做到这一点在C#4.0,所以我可以把它分配给dynamic类型的变量(使用动态关键字) ?

回答

14

这有什么错

dynamic myTypeInstance = Activator.CreateInstance(Type.GetTypeFromProgID(typeName, true)); 

如果它是一个已知类型的名字,这里还有

dynamic myTypeInstance = Activator.CreateInstance("typeName", "assemblyName"); 
+0

工作很细的(任何CPU太)。谢谢。 – harveyt 2014-09-06 23:19:44