2

我不是 C# 程序员,如果这是一个愚蠢的问题,请原谅,但我找不到任何解决方案。

我有一个Object. 它是一个 COM 对象,它ToString()返回“System.__comObject”。当用调试器检查它的内部内容时,我可以看到这个对象有一个名为的属性Object,它是我想要的实际类的一个实例。但是,Objectclass 没有 property Object,当我尝试将对象本身转换为所需的类型时,我得到了一个异常。应该如何将 COM 对象转换为 .NET 对象?

4

1 回答 1

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 };
}
于 2013-10-07T14:18:33.060 回答