C#与com对象连接

C#与com对象连接,c#,com,C#,Com,在C#中是否存在连接到COM对象并使用COM对象的内容,例如在Builder C++中: CreateOleObject("some.someClass"); (除OLEDb外,OLE C#似乎不受支持,但我认为这不是当前的情况) 我知道我可以添加一个链接->COM->查找已注册的COM对象 但是它不适合。通常,如果需要在C#中使用COM对象,您可以将其添加为引用,然后选择已注册的类型库。这将生成一个互操作程序集,之后您可以像使用任何其他C#类一样使用COM对象 或者,您也可以手动运行.NET

在C#中是否存在连接到COM对象并使用COM对象的内容,例如在Builder C++中:

CreateOleObject("some.someClass");
(除OLEDb外,OLE C#似乎不受支持,但我认为这不是当前的情况) 我知道我可以添加一个链接->COM->查找已注册的COM对象


但是它不适合。

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

或者,您也可以手动运行.NET实用程序,其效果大致相同,但控制力略强

如果您确实需要动态地创建对象,而事先不知道有关类型的任何信息,那么可以使用
dynamic
关键字和
Activator
类来创建类型的动态实例。代码如下所示:

var comType = Type.GetTypeFromProgID("some.someClass");
dynamic obj = Activator.CreateInstance(comType);
这将推迟对
obj
的所有类型检查,直到运行时,其行为与VBA非常相似。

搜索项是。