Скажем, у меня есть следующая сущность:
public class FooEntity
{
public string NameFr { get; set; }
public string NameNl { get; set; }
}
И я хочу, чтобы она была преобразована в следующее dto:
public class FooDto
{
public LocalizedStringDto Name { get; set; }
}
И LocalizedStringDto
выглядит следующим образом:
public class LocalizedStringDto
{
public string Fr { get; set; }
public string Nl { get; set; }
}
Сейчас, чтобы сделать такое отображение, я создал профиль со следующим:
CreateMap<FooEntity, FooDto>()
.ForMember(dest => dest.Name, opt => opt.MapFrom(src => new LocalizedStringDto { Fr = src.NameFr, Nl = src.NameNl }));
И он работает довольно хорошо.
Проблема в том, чтоУ меня много dto с разными свойствами этого типа (DescriptionFr / DescriptionNl, ThisFr / ThisNl и т. Д.), И я не хочу, чтобы меня всегда заставляли писать одни и те же строки кода для сопоставления между ними.строки и LocalizedStringDto
.
То, что я ищу, это способ сказать AutoMapper: «Когда вы встречаете член типа LocalizedStringDto
, создайте новый объект этого типа и используйте MemberFr
для свойства Fr
и MemberNl
для свойства Nl
. "
Я сомневаюсь, что есть очевидный способ сделать это с AutoMapper, что я ищу с этим вопросом, это мнениео лучшем подходе для достижения этой цели.