C#与com-object连接

时间:2015-09-26 00:53:25

标签: c# com

C#中是否连接到COM-object并使用com-object的内容,例如在Builder c ++中:

CreateOleObject("some.someClass");

(除了OLEDb之外,似乎不支持OLE C#,但在我看来,它不是当前的情况) 我知道我可以添加一个链接 - > COM - >寻求注册的com-object。

但它不适合。

1 个答案:

答案 0 :(得分:1)

通常,如果需要在C#中使用COM对象,则将其添加为Reference,并选择已注册的类型库。这将生成一个Interop程序集,之后您可以像使用任何其他C#类一样使用COM对象。

或者,您可以手动运行.NET实用程序tlbimp,它具有大致相同的效果,但可以为您提供更多控制。

如果您确实需要动态创建对象,而不提前了解类型,可以使用dynamic关键字和Activator类来创建类型的动态实例。代码看起来像:

var comType = Type.GetTypeFromProgID("some.someClass");
dynamic obj = Activator.CreateInstance(comType);

这会将obj上的所有类型检查推迟到运行时,其行为与VBA非常相似。