2016-09-16 15 views
0

をアップグレードした後に動作しない、私は私のnugetパッケージをアップグレードし、 https://www.nuget.org/packages/AutoMapper/AutoMapperは私のMVCプロジェクトのために5.1.1

それはIListのマッピングソースとしてサポートされていると言うからAutoMapperの最新版を得ました。 https://github.com/AutoMapper/AutoMapper/wiki/Lists-and-arrays

古いバージョンで動作していたので、設定セクションのみを更新しました。

構成は以下のとおりです。

public class MvcApplication : System.Web.HttpApplication 
{ 
    protected void Application_Start() 
    {   
     AutoMapperConfig.RegisterMappings();    
    } 
} 

public static void RegisterMappings() 
{ 
    Mapper.Initialize(cfg => 
    { 
     cfg.CreateMap<RssNewDto, RssNewViewModel>();  
    }); 
} 

// where I am trying to resolve 
[HttpGet] 
public IList<RssNewViewModel> ReadList() 
{ 
    // EXCEPTION 
    IList<RssNewViewModel> items2 = AutoMapper.Mapper.Map<IList<RssNewDto>, IList<RssNewViewModel>>(items); 
    return items2; 
} 

ERROR: AutoMapper.AutoMapperMappingException occurred
HResult=-2146233088 Message=Error mapping types. InnerException: HResult=-2146233088 Message=Missing type map configuration or unsupported mapping.

私は、設定上の何かが足りないのですか?

+0

残りの例外メッセージは何ですか?欠落しているタイプ情報を含める必要があります。 –

+0

@JimmyBogard私がMapperConfiguration.AssertConfigurationIsValidメソッドを呼び出すと、設定されていないすべての設定エラーがわかりました。私は、このメソッドはInitializeメソッドの後に内部的に呼び出されるべきだと考えています。人々はこのメソッドを呼び出すことを忘れる可能性があるので、無効なMapperが設定されている可能性があり、実行時にそれらを噛んでしまいます。 –

+0

ああ、私は多くの人がそれをするのを見る。私はプロダクションでそれをやっているのかどうかはわかりませんが、私は少数派です。 –

答えて

0

あなたRegisterMappings方法だけではないIList<RssNewDto>IList<RssNewViewModel>から、RssNewViewModelRssNewDtoからマップを作成しています。

これは可能ですitems.Select(item => AutoMapper.Mapper.Map<RssNewViewModel>(item)).ToList();

+1

ドキュメントをチェックすると、「リストタイプを明示的に設定する必要はなく、メンバータイプのみ」と表示されます。私はあなたのソリューションを試してみるかもしれませんが、このライブラリを使用する正しい方法ではないようです。 https://github.com/AutoMapper/AutoMapper/wiki/Lists-and-arrays –

+0

リストは自動的にサポートされます。 –

関連する問題