Вот пример:
class Source
{
public int Value_1 { get; set; }
public int Value_2 { get; set; }
public int MissedValue { get; set; }
}
class Destination
{
public int Value_1 { get; set; }
public int Value_2 { get; set; }
}
void Main()
{
var config = new AutoMapper.MapperConfiguration(cfg =>
{
cfg.CreateMap<Source, Destination>()
.ForMember(dst => dst.Value_1, m => m.MapFrom(src => src.Value_1))
.ForMember(dst => dst.Value_2, m => m.MapFrom(src => src.Value_2))
;
});
config.AssertConfigurationIsValid();
}
В конце мне нужно, чтобы AssertConfigurationIsValid () выдавал исключение, когда у меня пропущены Исходные поля, а не только поля назначения.
Кроме того, как заставить его отключить любые преобразования типов и имен?Как int -> string, Test.Id -> TestId и т. Д. Мне нужно, чтобы это было как можно более ограниченным.Или, может быть, есть лучшая альтернатива для моего случая?
UPDATE_0: ОК.Нашел ответ на первую часть.Просто нужно использовать
cfg.CreateMap<Source, Destination>(AutoMapper.MemberList.Source)
Было бы здорово иметь поддержку обоих типов валидации в целом, но это уже хорошее начало.Теперь осталось удалить все соглашения об именах и преобразователи типов.