如何从一个对象的属性映射到另一个对象的构造函数参数?

时间:2013-11-07 22:34:18

标签: automapper automapper-3

想象一下这样的课程:

class Source
{
    public string Name { get; set; }
    public string Code { get; set; }
}

class Destination
{
    public Destination(string name, int code)
    {}
}

我想配置从SourceDestination的映射。 我希望AutoMapper自动将Source.NameDestination的{​​{1}}构造函数参数匹配,因为它们具有相同的名称(不包括命名约定)和类型。但是,第二个构造函数参数需要自定义映射。

到目前为止我能找到的最好的方法就是手动完成所有的mappping:

name

然而,通过这样做,我失去了基于约定的映射提供的可维护性改进。

1 个答案:

答案 0 :(得分:0)

这并没有完全回答这个问题,但我最终得出的结论是,在这样的场景中使用AutoMapper更容易。编写一个接收一个对象的方法并在不使用AutoMapper的情况下创建另一个对象的实例是微不足道的:

Destination Map(Source source)
{
    return new Destination(source.Name, source.Code);
}