Соглашения об Automapper и именовании - PullRequest
0 голосов
/ 25 октября 2018

В настоящее время у меня проблема с Automapper и LowerUnderscoreNamingConvention.

Я пытаюсь отобразить два класса с представлением адресов с помощью профиля.

Синтаксис выглядит следующим образом:

public class LowerCaseAddress
{
    public string address_line_1 { get; set; }
}

public class PascalCaseAddress
{
    public string AddressLine1 { get; set; }
}

public class AddressReverseDataTypeProfile : Profile
{
    public AddressReverseDataTypeProfile()
    {
        SourceMemberNamingConvention = new LowerUnderscoreNamingConvention();

        CreateMap<LowerCaseAddress, PascalCaseAddress>();
    }
}

public static IMapper AddressMapper = new Mapper(new MapperConfiguration(cfg =>
{
    cfg.ShouldMapProperty = p => p.GetMethod.IsPublic || p.GetMethod.IsAssembly;

    cfg.AddProfile<AddressReverseDataTypeProfile>();
}));

[Test]
public void ReverseMapTest()
{
    var inputAddress = new LowerCaseAddress()
    {
        address_line_1 =  "SAMPLE"
    };

    PascalCaseAddress sut = AddressMapper.Map<LowerCaseAddress, PascalCaseAddress>(inputAddress);

    var actualValue = sut.AddressLine1;

    Assert.AreEqual(actualValue, inputAddress.address_line_1);
}

Проблема у меня заключается в том, что если мои свойства - address_line и AddressLine соответственно - Automapper отображается правильно - но как только мы получим целые числа в концеимя свойства не удается.

У нас есть AddressLine1 - AddressLine10 на исходном и целевом объектах, поэтому это не работает.

Есть идеи?

Приветствия.

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