2017-09-30 20 views
1

Automapperを使用していますが、ソース変数をネストされたメンバー変数にマップできるかどうかを知る必要がありますか?Automapper外部クラスから内部クラス変数へのマップ

これは私が

public class source 
{ 
    public string name; 
} 

からマッピングするソースは、これは先です - 私はNested.Nameメンバー

public class Destination 
{ 
    public Nested info; 
} 

public class Nested 
{ 
    public string name; 
} 

大歓迎任意のヘルプに割り当てられた名前の変数が必要です。 Ron。このような

+0

をしますか? – Stefan

+0

私はMapper.Initialize CreateMap定義がどんなものか分かりません。 – ronMilne

答えて

0

何かがトリックを行う必要があり、あなたが初期化されていないdst.info

CreateMap<source, Destination>() 
      //reegular mapping here 
      .ForMember(dst => dst.foo, c => c.MapFrom(src => src.otherfoo)) 
      //AfterMap to bind your properties 
      .AfterMap((src, dst) => { dst.info.name = src.name; }); 
+0

これは文句を言う - それはトップレベルのメンバーに解決され、子オブジェクトのプロパティには解決されてはならない。子タイプまたはAfterMapオプションでカスタムリゾルバを使用してください。 – ronMilne

+0

ああ、後の地図は本当に安全です...例を修正しましょう – Stefan

+0

@ronMilne:うまくいくはずです。 – Stefan

0

に遭遇するかもしれませんが、あなたが明示的に定義された構成を持っていますかForPathはトリック

CreateMap<source, Destination>() 
     .ForPath(d => d.info.name, c => c.MapFrom(src => src.name)); 
関連する問題