1

AとBの2つのクラスがあるとします

public class A
{
public string p1{get;set};
public string p2{get;set};
}

public class B : A
{
public string p3{get;set};
}

クラス A のオブジェクト 'a' があり、'a' のすべてのプロパティ値をコピーするクラス B のオブジェクト 'b' を作成したいと考えています。通常、次のようにする必要があります。

B b = new B();
b.p1 = a.p1;
b.p2 = a.p2;

このソリューションでは、手動で割り当てる必要がある場合、多くのコードを失う必要があります。解決策はありますか?ありがとう。

4

2 に答える 2

0
  1. 必要に応じて、リフレクションを使用して独自のハイドレーターを作成できるため、オブジェクトのプロパティ、名前、およびタイプを比較できます。

  2. または、別の回答で述べたように automapper を使用できます。

  3. 3 番目の解決策は、適応をコードに組み込むことです。「B」は「A」のことを知っているので、

      public class B : A
      {
          public string p3{get;set};
          public void Hydrate{A a}
          {
              this.p1 = a.p1;
              this.p2 = a.p2;
           }
       }
    

    次に、コードは次のようになります

       B b = new B();
       b.Hydrate(a);
    
于 2013-08-07T03:18:24.407 に答える