2016-09-16 2 views
0

Für meine MVC-Projekt aktualisieren, verbesserte ich meine nuget Pakete und bekam neueste Version von AutoMapper von https://www.nuget.org/packages/AutoMapper/AutoMapper funktioniert nicht nach 5.1.1

Es sagt IList als Mapping-Quelle unterstützt wird; https://github.com/AutoMapper/AutoMapper/wiki/Lists-and-arrays

Es funktionierte mit älteren Version und ich habe nur meine Konfiguration aktualisiert.

Konfiguration ist wie folgt;

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.

Bin ich etwas von der Konfiguration fehlt?

+0

tun Was ist der Rest der Ausnahmemeldung? Es sollte die fehlenden Typinformationen enthalten. –

+0

@JimmyBogard nachdem ich die MapperConfiguration.AssertConfigurationIsValid-Methode aufgerufen habe, hat sie mir alle fehlenden Konfigurationsfehler deutlich gezeigt. Ich glaube, dieser sollte nach der Initialize-Methode intern aufgerufen werden. Da Leute vergessen haben, diese Methode aufzurufen, kann der Mapper ungültig konfiguriert sein, und es wird sie zur Laufzeit beißen. –

+0

Oh ja, ich sehe viele Leute das tun. Ich bin mir nicht sicher, ob ich das in der Produktion machen soll, aber ich glaube, ich bin dort in der Minderheit. –

Antwort

0

Ihre RegisterMappings Verfahren zu schaffen ist nur eine Karte vom RssNewDto zum RssNewViewModel, nicht von einem IList<RssNewDto>-IList<RssNewViewModel>.

Sie könnten diese items.Select(item => AutoMapper.Mapper.Map<RssNewViewModel>(item)).ToList();

+1

Nun .. Wenn Sie die Dokumentation überprüfen, heißt es "es ist nicht notwendig, Listentypen explizit zu konfigurieren, nur ihre Mitgliedstypen". Ich könnte versuchen, Ihre Lösung, aber es scheint nicht richtig, diese Bibliothek zu verwenden. https://github.com/AutoMapper/AutoMapper/wiki/Lists-and-arrays –

+0

Rechts, Listen werden automatisch unterstützt. –

Verwandte Themen