変数source
とtarget
は、2つの異なるクラスの2つの異なるインスタンスです。しかし、彼らは両方ともIDというintプロパティを持っています。GetValueで取得したデータからSetValueを呼び出すときに "オブジェクトがターゲットタイプと一致しません"
変数tProp
およびsProp
は、それぞれのオブジェクトのIDプロパティのオブジェクトです(PropertyInfo
)。
sProp
は値54を有し、IDEのローカルwindwows obj{int}
tProp
が有効性、まだ設定されていないタイプとして示します。
私はこのコードを使用してtarget.IDを設定しようとしています:
var sVal = sProp.GetValue(source);
tProp.SetValue(target, sVal);
私はその行を打つとき、私は「オブジェクトがターゲットの型と一致しません」を取得。
は私がint
にsVal
をキャストすることによってこの問題を解決できることを知っているが、私はここで、一般的なコードを書くしようとしていると、少なくとも.NETは、2つのオブジェクトがまったく同じタイプであることを決定することができるだろうと思いました。何か不足していますか?
これを解決するにはどうすればいいですか?タイプのチェックやキャスティング以外の方法はありますか?
アスタリスクではなくバッククォート( '\' ')を使用したフォーマットコード。 – Amy
私にとって完璧に動作します。最小の完全な例が必要です。私の例:https://pastebin.com/raw/ZrxEvaTHジェネリックでも:https://pastebin.com/raw/DAqULAj3 – Dispersia
2つの異なるクラスの構造を表示することをお勧めします。 – Sach