【发布时间】:2013-10-14 03:49:47
【问题描述】:
我不是 C# 程序员,如果这是一个愚蠢的问题,请原谅,但我找不到任何解决方案。
我有一个Object。它是一个 COM 对象,它的 ToString() 返回“System.__comObject”。当用调试器检查它的内部内容时,我可以看到这个对象有一个名为Object 的属性,它是我想要的实际类的一个实例。但是,Object 类没有属性Object,当我尝试将对象本身转换为所需类型时,我得到一个异常。 COM对象应该如何转换为.NET对象?
【问题讨论】:
-
你不能,你能做的最好的就是将它转换为与对象实现的 COM 接口之一匹配的接口
-
@Mgetz:我怎样才能找到它实现了哪些接口?
-
您的问题似乎表明您可以访问本机代码,如果是这种情况,您可以查看对象本机声明。但如果可以的话,我强烈建议您使用Tlbimp to create a .NET library to do the interop for you.
-
@Mgetz:不,它是 Microsoft 库,而且文档记录很差。我当然没有这个对象的声明。事实上,我只能猜测它的类型,这正是我想要做的。
-
哪个库?它可能已经有一个主互操作程序集。
标签: c# com casting type-conversion