1

次のようなプロパティ名でオブジェクトをマップしようとしています:

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

各プロパティを別のプロパティに個別にマップするよりも、これを行うためのより良い方法はありますか? 唯一の違いは下線です。

4

2 に答える 2

5

ソース側でアンダースコアの命名規則を指定する必要があります。

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

一部のソース タイプのみがこの命名規則に従っている場合は、グローバルに (上記のように) またはプロファイルごとに行うことができます。

于 2009-10-27T13:10:12.330 に答える
0
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);
    }
}
于 2009-10-27T11:12:55.560 に答える