5
Automapper可能会建立一个约定,以便映射不必手动创建,以便您映射的实体只需添加“ViewModel”。自动映射器会议
作为一个例子,我宁可不要设置如下图:
Mapper.CreateMap<Error, ErrorViewModel>();
如果投影需要,我需要创建一个自定义的地图,但有一个约定来创建地图将是我的理解不错。
Automapper可能会建立一个约定,以便映射不必手动创建,以便您映射的实体只需添加“ViewModel”。自动映射器会议
作为一个例子,我宁可不要设置如下图:
Mapper.CreateMap<Error, ErrorViewModel>();
如果投影需要,我需要创建一个自定义的地图,但有一个约定来创建地图将是我的理解不错。
您需要使用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; }
}
谢谢,我没有见过Mapper.DynamicMap – beckelmw 2010-01-09 01:01:49
作为一个方面说明,我们已经来回添加基本上扫描。即使有大量的映射定义(大约4-500),对我们来说真的只是看看它还不够。 – 2010-01-11 13:52:03
尝试ValueInjecter http://valueinjecter.codeplex.com/documentation,它不需要为类型的每种组合创建地图 – Omu 2010-05-05 20:26:48
为什么不安装它? – gdoron 2012-10-28 09:28:46