我不是C#程序员,所以请问这是一个愚蠢的问题,但是我找不到任何解决方案。
我有一个Object
。这是一个COM对象,其ToString()
返回“ System .__ comObject”。使用调试器检查其内部内容时,我可以看到该对象具有名为Object
的属性,并且它是我想要的实际类的实例。但是,Object
类没有属性Object
,当我尝试将对象本身强制转换为所需类型时,出现异常。 COM对象应如何转换为.NET对象?
最佳答案
如果知道您想要的类型,则可以使用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 };
}