我不是C#程序员,请原谅我这是一个愚蠢的问题,但我找不到任何解决方案。
我有Object
。它是一个COM对象,它的ToString()
返回“System .__ comObject”。使用调试器检查其内部内容时,我可以看到此对象具有一个名为Object
的属性,它是我想要的实际类的实例。但是,Object
类没有属性Object
,当我试图将对象本身转换为所需类型时,我得到一个异常。如何将COM对象转换为.NET对象?
答案 0 :(得分:3)
如果你知道自己喜欢什么类型,可以设置一种方法来自行转换,使用dynamic
来访问属性:
public static MyObject ConvertFromComObject(dynamic comObject)
{
return comObject.Object;
}
// or, if that doesn't work:
public static MyObject ConvertFromComObject(dynamic comObject)
{
return new MyObject { MyProperty = comObject.Object.MyProperty };
}
// or maybe
public static MyObject ConvertFromComObject(dynamic comObject)
{
return new MyObject { MyProperty = comObject.MyProperty };
}