この問題が発生しています。リフレクションを使用してクラスからプロパティを取得していますが、問題はリフレクションがそれらをオブジェクトとして返し、実際の型に取得できないことです。
たとえば、これがクラスの場合:
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; }
}
1つの発言Row<bool>
からRow<object>
機能へのキャスト:
var a = new Row<bool>
{
Name = "Foo",
Value = true
};
var b = (Row<object>)a; // Works
しかし、そこから行こうとobject
するRow<object>
と、明示的な演算子が無視されて System.InvalidCastException がスローされるようです。
var c = (object) a; // Simulate getting from reflection
var d = (Row<object>) c; // System.InvalidCastException
私は何が欠けていますか?