简体   繁体   English

C#4,动态关键字和后期绑定的CreateObject等价物?

[英]CreateObject equivalent for C# 4, dynamic keyword, and late binding?

How do I create a dynamic COM/OLE/ActiveX object in C# 4.0 from a program identifier or ProgID (such as "Word.Application") without referencing a library? 如何在不引用库的情况下从程序标识符或ProgID(例如“Word.Application”)在C#4.0中创建动态COM / OLE / ActiveX对象?

In C# 3.5 I'd have to write something like 在C#3.5中,我必须写一些类似的东西

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

Is there an easier way to do it in C# 4.0 so I can assign it to a variable of type dynamic (using the dynamic keyword)? 有没有更简单的方法在C#4.0中这样做,所以我可以将它分配给动态类型的变量(使用动态关键字)?

What's wrong with 怎么了?

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

?

If it's a known type name, there's also 如果它是一个已知的类型名称,那么也是

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM