【发布时间】:2011-08-05 05:33:38
【问题描述】:
是否可以强制 COM Visible .NET 程序集实例化为 System.__ComObject,而不是 .NET 类型?我问的原因是,我的应用程序的一部分使用了第 3 方 COM 对象,但其中一些在用 .NET 编写时,会被实例化为它们的 .NET 类型并破坏我创建的对象处理程序。我无法控制用于创建 COM 对象的方法。目前我正在使用以下内容来创建对象。
Type comType = Type.GetTypeFromCLSID(objectGUID);
comObject = Activator.CreateInstance(comType);
谢谢!
【问题讨论】:
-
你想对那些正在破坏的对象做什么?
-
以COM接口/方法,IOleWindow为例。这些对象可能实现多个接口中的一个或多个,因此我正在检查该对象是否是这些接口之一。当实例化为 .NET 类型时,COM 接口没有通过检查。