2016-08-05 5 views
0

は、次の例を見てみましょう:AutoMapperを使用して基本クラスのプロパティを設定することはできますか?

public class Parent 
{ 
    public string Id {get; set;} 

    public Parent(string id) 
    { 
     Id = id; 
    } 
} 

public class Child : Parent 
{ 
    public string Name {get; set;} 

    public Child(string id, string name) : base(id) // <-- call base constructor 
    { 
     Name = name; 
    } 
} 

これは、基本クラスにプロパティを設定する方法についての典型的な例です。

私の基本クラスには50のプロパティが含まれています。 各プロパティを行単位で設定できることは分かっていますが、AutoMapperを使用してプロパティを設定できるかどうか疑問に思っていましたか?

私は、基本クラスでは、このような何かをしたい:私が正しく理解していれば

public class MyClass 
{ 
    public MyClassMapData(MY_DATA data) 
      { 
       // DOC_TRACK_MAIN 
       var config = new MapperConfiguration(c => 
       { 
        c.CreateMap<MY_DATA , MyClass>(); 
       }); 

       // This will map the first 45 properties. 
       var mappedData = config.CreateMapper().Map<MY_DATA , MyClass>(data.MyData); 

       // DOC_TRACK_DETAILS 
       mappedData.PROP_46 = data.Field1; 
       mappedData.PROP_47 = data.Field2; 
       mappedData.PROP_48 = data.Field3; 
       mappedData.PROP_49 = data.Field4; 
       mappedData.PROP_50 = data.Field5;    

      // How would I set mappedData to my current instance?  
      } 

    // My 50 properties... 
} 

答えて

0

、あなたは現在のクラスにmappedDataをマッピングするために探しています。 var mappedData = config.CreateMapper().Map<MY_DATA , MyClass>(data.MyData);行をconfig.CreateMapper().Map<MY_DATA , MyClass>(data.MyData, this);に変更すると、そのデータがクラスにマップされます。次に、クラスのPROP_46〜PROP_50を手動で設定することができます

関連する問題