2

私は C# プログラマーではないので、ばかげた質問で申し訳ありませんが、解決策が見つかりません。

私は持っていObjectます。これは COM オブジェクトであり、ToString()「System.__comObject」を返します。デバッガーで内部の内容を調べると、このオブジェクトには呼び出されたプロパティがObjectあり、必要な実際のクラスのインスタンスであることがわかります。ただし、Objectクラスにはプロパティがなく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 に答える