有人知道在VisualStudio的调试器中是否以及如何正确地看到COM / Interop对象(正确的类型)?我得到的只是' evil ' System .__ ComObject 值(即使它正确识别了类型)?
E.g:
答案 0 :(得分:2)
来自.NET and COM: The Complete Interoperability Guide:
当通过方法的返回类型或by-reference参数返回COM对象的实例,并且CLR无法确定类型时,您将获得通用的System .__ ComObject类型,因为COM对象总是作为接口指针传递/返回。
您可以尝试使用Marshal.CreateWrapperOfType
更改返回类型,如下例所示:
MyType newObject = (MyType)Marshal.CreateWrapperOfType(oldObject, typeof(MyType))
然后,您可以在监视窗口中查看newObject,它应具有预期的属性。
如果调用失败,则会抛出InvalidCastException。
答案 1 :(得分:1)
我使用了立即窗口来手动查询COM对象的属性。缺点是我不认为你会得到intellisense所以你必须确切地知道你想要检查什么。
答案 2 :(得分:1)