В настоящее время у меня проблема с 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 на исходном и целевом объектах, поэтому это не работает.
Есть идеи?
Приветствия.