私は、各代入可能なプロパティを1つずつ明示的に割り当てることなく、派生クラスの基本部分に基本クラスの変数から代入する方法を探しています。別の言い方をすると、基本クラスの変数から始めて、割り当て可能なすべての基本プロパティが設定された派生クラスの変数を最終的に作成したいと思います。変化する。派生クラスの基底部分に代入する
私は、編集しようとしているエンティティの基本クラスから派生クラスとしてビューモデルを作成します。通常は、ナビゲーションプロパティのIDを追加してPOSTによって返されるようにするだけです。例えば:私は、基本クラスThing
にプロパティを追加し、私はThingEditView
を初期化する場所すべての場所を編集することを忘れたときに、私はトラブルに遭遇し、
var foo = new ThingEditView
{
UsefulID = thisThing.Useful.ID,
A = thisThing.A,
B = thisThing.B,
/* and potentially many more properties from the base class Thing */
};
return View(foo);
しかし:
public class ThingEditView : Thing
{
public int UsefulID { get; set; }
}
それはこのように使用されますまたはThingDetailView
、など私は
var foo = new ThingEditView
{
base = thisThing,
UsefulID = thisThing.Useful.ID
};
を言うと、コンパイラが割り当てするフィールドを把握しましょうすることができるのが大好きです。これを行う方法はありますか?
洞察力ありがとう!
おそらく[AutoMapper](http://automapper.org/)がお手伝いできます。 –
合意された、Automapperのようなものが唯一の方法です。 – swannee
ありがとうAndre(bedanke mich)とEric。 AutoMapperは私が望んでいたよりも少し重いようですが、まさに私が必要とするものです。奇妙なことにC#でこれを直接言う方法はありません。 Cの日で私は 'memcpy(... sizeof(Thing))'に達するでしょう。 –