Как заставить AutoMapper быть очень ограниченным? - PullRequest
0 голосов
/ 25 ноября 2018

Вот пример:

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)

Было бы здорово иметь поддержку обоих типов валидации в целом, но это уже хорошее начало.Теперь осталось удалить все соглашения об именах и преобразователи типов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...