2016-12-01 2 views
1

AssertConfigurationIsValid合格し、試行中のオブジェクトが完全に読み込まれますが、最初に呼び出されたMap要求でエラーが発生します。Automapper: "タイプマップの設定が欠落しているか、サポートされていないマッピング"

私は以下のコードでautomapper初期化しています

Survey ToLoad = Mapper.Map<Survey>(U); 

をマップしようとしています。

//Lots of other Maps 
Mapper.Initialize(cfg => cfg.CreateMap<User, SMUser>() 
     .ForMember(t => t.AccountType, s => s.MapFrom(so => so.AccountType != null ? so.AccountType : String.Empty)) 
     .ForMember(t => t.Username, s => s.MapFrom(so => so.Username != null ? so.Username : String.Empty))); 


Mapper.Initialize(cfg => cfg.CreateMap<SurveyMonkey.Containers.Survey, Survey>().ForMember(t => t.AnalyzeUrl, s => s.MapFrom(so => so.AnalyzeUrl != null ? so.AnalyzeUrl : String.Empty)) 
     .ForMember(t => t.Category, s => s.MapFrom(so => so.Category != null ? so.Category : String.Empty)) 
     .ForMember(t => t.CollectUrl, s => s.MapFrom(so => so.CollectUrl != null ? so.CollectUrl : String.Empty)) 
     .ForMember(t => t.EditUrl, s => s.MapFrom(so => so.EditUrl != null ? so.EditUrl : String.Empty)) 
     .ForMember(t => t.Language, s => s.MapFrom(so => so.Language != null ? so.Language : String.Empty)) 
     .ForMember(t => t.Preview, s => s.MapFrom(so => so.Preview != null ? so.Preview : String.Empty)) 
     .ForMember(t => t.SummaryUrl, s => s.MapFrom(so => so.SummaryUrl != null ? so.SummaryUrl : String.Empty)) 
     .ForMember(t => t.Title, s => s.MapFrom(so => so.Title != null ? so.Title : String.Empty)) 
     //Some more members 
); 

//LISTS 
Mapper.Initialize(cfg => cfg.CreateMap<List<SurveyMonkey.Containers.Collector>, List<Collector>>()); 

//Lots of other List Maps 

私はNuget(5.2.0)の最新の安定版を使用しています。

+0

エラーはあなたが得るいただきましたか? – CodingYoshi

答えて

3

設定全体でMapper.Initializeを1回だけ呼び出すか、上書きします。

あなたはAutoMapper.Profileを継承したクラスで設定をラップすることができます:

using AutoMapper; 

public class MyAutoMapperProfile : Profile { 

    protected override void Configure() { 
     CreateMap<User, SMUser>(); 
     CreateMap<SurveyMonkey.Containers.Survey, Survey>(); 
     CreateMap<List<SurveyMonkey.Containers.Collector>, List<Collector>>(); 
    } 
} 

次に、このプロファイルを使用してマッパーを初期化:

Mapper.Initialize(cfg => { 
    cfg.AddProfile<MyAutoMapperProfile>(); 
    cfg.AddProfile<OtherAutoMapperProfile>(); 
}); 

AutoMapper Configuration

+0

これは完全に機能しました(configureは公開されていないのを除いて) –

+0

あなたは正しいです、それは保護されていて、私は答えを編集しました。 –

関連する問題