私はこの問題を抱えていますが、クラスからプロパティを取得するためにリフレクションを使用していますが、問題はリフレクションでオブジェクトとして返され、実際のタイプには取得できません。キャスト例外のジェネリックが無効
例えばテイク、これはクラスの場合:私はRow<object>
にobject
から行くしようとする。しかし、それが思わ
var a = new Row<bool>
{
Name = "Foo",
Value = true
};
var b = (Row<object>)a; // Works
:1からキャスト
public class Row<T>
{
public static explicit operator Row<object>(Row<T> o)
{
return new Row<object>
{
Name = o.Name,
Value = o.Value
};
}
public string Name { get; set; }
public T Value { get; set; }
}
がRow<bool>
作品Row<object>
に言います私の明示的な演算子を無視し、System.InvalidCastExceptionをスロー:
var c = (object) a; // Simulate getting from reflection
var d = (Row<object>) c; // System.InvalidCastException
私は何が欠けていますか? dynamic
代わりobject
の
var c =(Row
あなたが期待しているものがわからない - サンプルに「明示的な演算子行
これは、明示的な演算子が 'Row'を期待しているためです。 –