Automapper公约

bec*_*lmw 5 c# automapper

是否是可能的Automapper设置一个约定,以便映射不必用手因为你所映射到实体只是有说"视图模型"追加的情况下创造了千万.

作为一个例子,我宁愿不必设置以下地图:

Mapper.CreateMap<Error, ErrorViewModel>();
Run Code Online (Sandbox Code Playgroud)

我理解如果需要投影我需要创建一个自定义地图,但是有一个创建地图的约定会很好.

Dom*_*etz 6

你需要Mapper.DynamicMap<TDest>(source)用来映射.

正如您在下面的示例中所看到的,它会自动将匹配的属性从源映射到目标.

using AutoMapper;
using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
        var source = new Foo {Value = "Abc"};
        var destination = Mapper.DynamicMap<FooViewModel>(source);

        Debug.Assert(source.Value == destination.Value);
    }
}

public class Foo
{
    public string Value { get; set; }
}

public class FooViewModel
{
    public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)