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