【发布时间】:2011-03-21 21:13:53
【问题描述】:
假设您有一个 COM 接口 ICOMInterface,它由 coclasses Coclass1 和 Coclass2 实现。这些 coclass 都没有自己的接口(为了简单起见并说明我的问题)。
在 C# 中,您可以像这样从 coclass 创建 COM 接口的实例:
ICOMInterface myComInterface = new Coclass1();
现在,您如何确定myComInterface 是由Coclass1 还是Coclass2 实例化的?
像下面这样使用“is”语句总是返回 true,因此对于这个目的是没有用的。
Debug.WriteLine(myComInterface is Coclass1) // writes "True"
Debug.WriteLine(myComInterface is Coclass2) // writes "True"
如果我测试的是接口而不是 coclass,这将起作用,但这些 coclass 除了它们都实现的接口之外没有其他接口,ICOMInterface。
我希望对我忽略的这个相当通用的场景有一个简单的答案,否则我可以在需要时发布更具体的细节。
感谢您的帮助!
【问题讨论】: