C# 强制将COM对象强制转换为接口
我正在使用COM API访问某个类,但应用程序开发人员尚未将该类完全公开给COM。因此,当我键入C# 强制将COM对象强制转换为接口,c#,api,com,.net,coreldraw,C#,Api,Com,.net,Coreldraw,我正在使用COM API访问某个类,但应用程序开发人员尚未将该类完全公开给COM。因此,当我键入shape.Custom.CellsVS时,会抱怨“Cells不存在..bla bla..” 但是,当我调试代码,并在VS调试器中打开对象时,它有属性。。正是我试图访问的属性 因此,我试图通过手写界面访问这些属性: internal interface CorelTableShape { object Cells { get; } object Borders { get; } object Co
shape.Custom.Cells
VS时,会抱怨“Cells不存在..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的支持,但我认为你可以接受