假設你有一個COM接口ICOMInterface
,它是由coclasses Coclass1
和Coclass2
實現的。這些共同課都沒有自己的接口(爲了簡單起見和說明我的問題)。C# - 如何在運行時測試哪個COM coclass被用來實例化一個接口?
在C#中,你可以像這樣從一個組件類創建一個COM接口的一個實例:
ICOMInterface myComInterface = new Coclass1();
現在,你怎麼能確定myComInterface
是否由Coclass1
或Coclass2
實例?
使用如下所示的「is」語句總是返回true,並且因此對於此目的沒有用處。
Debug.WriteLine(myComInterface is Coclass1) // writes "True"
Debug.WriteLine(myComInterface is Coclass2) // writes "True"
這工作,如果我是測試接口,而不是組件類,但這些組件類沒有一個比他們都實現,ICOMInterface
其他接口。
我希望有一個簡單的答案,我可以忽略這種相當普遍的情況,否則我可以發佈更多具體細節,如果需要的話。
感謝您的幫助!