1

A : B のような 2 つのオブジェクトがあります。

実行時に A から B にすべての値をコピーしたい

コード

Cow cow = db.Cows.Find(id);

CowDetailViewModel model = new CowDetailViewModel(); //  CowDetailViewModel : Cow

牛変数からモデルに値をコピーしたい。CowDetailViewModel には、値をコピーした後に変更する追加のプロパティがあります。

4

2 に答える 2

1
CowDetailViewModel model = new CowDetailViewModel()
{
     model.Property1 = cow.Property1,
     model.Property2 = cow.Property2
     ////
     ////
};
于 2013-09-25T12:35:39.497 に答える
0

すべてのパブリック プロパティをコピーする単純な拡張メソッドを作成できます。

public static class CopyHelper
{
    public static void CopyFrom(this object target, object source)
    {
        foreach (var pS in source.GetType().GetProperties())
        {
            foreach (var pT in target.GetType().GetProperties())
            {
                if (pT.Name != pS.Name) continue;
                (pT.GetSetMethod()).Invoke(target, new[] {pS.GetGetMethod().Invoke(source, null)});
            }
        }
    }
}
于 2015-10-20T05:41:33.507 に答える