将泛型 COM 对象强制转换为特定的 .NET 类
本文关键字:NET 转换 COM 泛型 对象 | 更新日期: 2023-09-27 18:34:10
我不是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 };
}