0

我正在使用 Automapper 6.1.1。并且需要使用反向映射。我发现了 2004 年的错误报告并已关闭。但在我的例子中不起作用,财产c12没有价值。那么我如何在这个例子中使用反向映射呢?

public class Class1
{
    public string COSI_KDESI { get; set; }
}
public class Class2
{
    public string CosiKdesi { get; set; }
}
Mapper.Initialize(cfg =>
{
    cfg.SourceMemberNamingConvention = new LowerUnderscoreNamingConvention();
    cfg.DestinationMemberNamingConvention = new PascalCaseNamingConvention();
    cfg.CreateMap<Class1, Class2>().ReverseMap();
}); 

Class1 c1 = new Class1() { COSI_KDESI = "ttttttt" };

Class2 c2 = Mapper.Map<Class2>(c1);
Class1 c12 = Mapper.Map<Class1>(c2);
4

1 回答 1

0

您需要两种不同的配置文件,一种按照您已经配置的方式进行配置,另一种则相反。

Mapper.Initialize(cfg =>
{
    cfg.CreateProfile("p1", p=>
    {
        p.SourceMemberNamingConvention = new LowerUnderscoreNamingConvention();
        p.CreateMap<Class1, Class2>();
    });
    cfg.CreateProfile("p2", p=>
    {
        p.DestinationMemberNamingConvention = new LowerUnderscoreNamingConvention();
        p.CreateMap<Class2, Class1>();
    });
}); 
于 2017-08-22T14:01:21.897 回答