Automapper Mapping - PullRequest
       9

Automapper Mapping

1 голос
/ 27 октября 2009

Я пытаюсь сопоставить объект с именами свойств, например так:

Property_One -> PropertyOne ... etc
Sample_Property -> SampleProperty

Есть ли лучший способ сделать это, чем сопоставить каждое свойство отдельно с другим? Разница лишь в подчеркивании.

Ответы [ 2 ]

5 голосов
/ 27 октября 2009

Вам нужно указать соглашение об именах подчеркивания на стороне источника:

Mapper.Initialize(i => 
{
    i.SourceMemberNamingConvention = new LowerUnderscoreNamingConvention();
    i.CreateMap<Source, Dest>(); 
});

Вы можете сделать это глобально (как показано выше) или для каждого профиля, если только некоторые из ваших типов источников следуют этому соглашению об именах.

0 голосов
/ 27 октября 2009
public class Source
{
    public string Property_One { get; set; }
}

public class Dest
{
    public string PropertyOne { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        Mapper.CreateMap<Source, Dest>()
            .ForMember(dest => dest.PropertyOne,
                       opt => opt.MapFrom(src => src.Property_One));

        var source = new Source
        {
            Property_One = "property1"
        };

        var destination = Mapper.Map<Source, Dest>(source);
        Console.WriteLine(destination.PropertyOne);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...