2016-10-03 6 views
0

ソースオブジェクト全体をコピー先のクラスのプロパティとしてプロパティとして保持する方法はありますか?Automapperを使用してコピー先のクラスにコピー元としてソースを保持

出典:

class SourceClass 
{ 
    prop string Prop1 { get; set; } 
    prop string Prop2 { get; set; } 
} 

が先:

class DestinationClass 
{ 
    prop string Prop1 { get; set; } 
    prop string Prop2 { get; set; } 
    prop SourceClass SourceClassCopy { get; set; } 
} 

とautomapper設定を使用して、私は、階層オブジェクトを持つと希望していますだって、なぜ私はこれをやっている

AutoMapper.Mapper.Initialize(cfg => { 
     cfg.ReplaceMemberName("this", "SourceClassCopy"); 
     cfg.CreateMap<SourceClass, DestinationClass>(); //or .ForMember("SourceClassCopy", d => d.MapFrom(s => s)); 
    }); 

のようなものがありますSourceクラスがデフォルトのコンストラクトを持たないため、逆マッピングのコピーを保持したいそれはマップを逆転させるのに役立ちます。また、ソース・クラスは、私は変更することはできませんライブラリにある:(とメソッド/全体のソースオブジェクトを受け入れる機能を持つ任意の助けに感謝感謝

答えて

0

あなたはそれをこのように行うことができます。。。

public class SourceClass 
{ 
    public string Prop1 { get; set; } 
    public string Prop2 { get; set; } 
} 

public class DestinationClass 
{ 
    public string Prop1 { get; set; } 
    public string Prop2 { get; set; } 
    public SourceClass SourceClassCopy { get; set; } 
} 

public class Program 
{ 
    public void Main() 
    { 
     var source = new SourceClass(); 
     source.Prop1 = "Prop1Source"; 
     source.Prop2 = "Prop2Source"; 

     var destination = new DestinationClass(); 
     destination.Prop1 = "Prop1Dest"; 
     destination.Prop2 = "Prop2Dest"; 

     var sourceinDest = new SourceClass(); 
     sourceinDest.Prop1 = "Prop1sourceinDest"; 
     sourceinDest.Prop2 = "Prop2sourceinDest"; 
     destination.SourceClassCopy = sourceinDest; 

     // Configure AutoMapper 
     Mapper.CreateMap<SourceClass, DestinationClass>() 
      .ForMember(dest => dest.SourceClassCopy, m=>m.MapFrom(src=>src)); 

     Mapper.Map<SourceClass, DestinationClass>(source, destination); 


     Console.WriteLine(destination.Prop1); 
     Console.WriteLine(destination.Prop2); 
     Console.WriteLine(destination.SourceClassCopy.Prop1);  
     Console.WriteLine(destination.SourceClassCopy.Prop2);  
    } 
} 
+0

うん、これは動作します..ありがとう – narcs

関連する問題