C#中是否连接到COM-object并使用com-object的内容,例如在Builder c ++中:
CreateOleObject("some.someClass");
(除了OLEDb之外,似乎不支持OLE C#,但在我看来,它不是当前的情况) 我知道我可以添加一个链接 - > COM - >寻求注册的com-object。
但它不适合。
答案 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非常相似。