簡體   English   中英

強制將COM對象強制轉換為接口

[英]Force cast a COM object to an interface

我正在使用COM API訪問某個類,但應用程序開發人員尚未將該類完全暴露給COM。 因此,當我鍵入shape.Custom.Cells VS時,抱怨“單元不存在.. bla bla bla ..”。

但是,當我調試代碼並在VS調試器中打開對象時,它具有屬性! ..正是我要訪問的屬性!

在此處輸入圖片說明

因此,我嘗試使用手寫界面訪問這些屬性:

internal interface CorelTableShape {

object Cells { get; }
object Borders { get; }
object Columns { get; }
object Rows { get; }
object Selection { get; }

}

並將COM對象轉換為我的界面....

 CorelTableShape table = (CorelTableShape)shape.Custom;

...觸發InvalidCastException! 有什么方法可以在運行時訪問這些屬性嗎?

呃

您不能將對象強制轉換為未實現的接口。 因此,您無法創建自己的接口並嘗試將對象投射到該接口。

您可以嘗試使用dynamic代替。 您將失去對IntelliSense的支持,但我認為您可以接受。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM