Vraag Gebruik van Automapper wanneer eigenschappen anders zijn


We gebruiken AutoMapper van Codeplex en voor mij bevat het doelobject alle eigenschappen die eindigen op 'Field', dat wil zeggen cityField en het bronobject heeft juist city.

Ik kan de onderstaande code gebruiken om te bereiken, maar alle eigenschappen hebben het suffix sufferd met 'Field' en er zijn 20 eigenschappen.

.ForMember(dest => dest.cityField, opt => opt.MapFrom(origin => origin.City));

Is er een andere manier om het woord 'Veld' te negeren tijdens het toewijzen en zodat het kan worden omgezet zonder .ForMember () 20 keer te gebruiken?


21
2018-02-02 17:22


oorsprong


antwoorden:


U kunt proberen postfixes te herkennen:

Mapper.Initialize(cfg => {
    cfg.RecognizePostfixes("Field");
    cfg.CreateMap<Source, Dest>();
});

Het herkennen van voorvoegsels werkt ook lokaal voor profielen, als het slechts een reeks kaarten is waarop dit van toepassing is.


18
2018-02-04 01:56



Ik denk dat je je eigen moet implementeren INamingConvention om dit te omzeilen.


3
2018-02-02 17:34