いつもとは逆の方向に進んでみます。
BがAから継承する2つのPOCOクラスAとBがあります
public class A
{
public int Foo { get; set; }
}
public class B : A
{
public int Bar { get; set; }
}
B は、追加情報を含む A の拡張として表示されます。
クラスAのインスタンスを持つことから始めます
A a = new A { Foo = 1 };
そして、クラス A の情報を追加情報で拡張し、最終的なクラス B を取得したいと考えています。クラス A のすべてのプロパティをクラス B のプロパティにマップできますが、あまり意味がありません。
A a = new A { Foo = 1 };
B b = new B { Foo = a.Foo, Bar = 2 };
またはコンストラクタで
A a = new A { Foo = 1 };
B b = new B(a) { Bar = 2 }; // Mapping of value Foo is done in constructor of object B
結果は、オブジェクト A から B への値の手動マッピングです。これを行うためのよりスマートな方法があるはずです...何か提案はありますか?