Исходя из этого вопроса, я хочу знать, могу ли я пропустить CreateMap<PERSON, Person>();
Я использую Automapper 7.0.1, и профиль имеет следующую форму
public class AutoMapperProfile : Profile
{
public AutoMapperProfile()
{
//...
//...
SourceMemberNamingConvention = new UpperUnderscoreNamingConvention();
DestinationMemberNamingConvention = new PascalCaseNamingConvention();
CreateMap<PERSON, Person>(); //what I want to omit
}
}
Я заметил, что если я удаляю эту строку CreateMap<PERSON, Person>();
, то сопоставляются только свойства, которые не содержат подчеркивания, и mapper генерирует исключение с сообщением о том, что есть несопоставленные свойства и их список.
Почему мы хотим использовать CreateMap
, когда мы хотим отобразить все свойства только на основе соглашения об именах?
EDIT:
После ответа @Lucian я удалил соглашение об именах из Profile и добавил его при инициализации, как это
Mapper.Initialize(cfg =>
{
cfg.AddProfile<AutoMapperProfile>();
cfg.SourceMemberNamingConvention = new UpperUnderscoreNamingConvention();
cfg.DestinationMemberNamingConvention = new PascalCaseNamingConvention();
});
Теперь мне не нужно использовать CreateMap
.