官網:http://automapper.org/git
源碼:https://github.com/AutoMapper/AutoMappergithub
NUGET安裝: 數組
PM> Install-Package AutoMapper
app
AutoMapper給用戶提供了便捷的配置API,就像使用約定來完成自動映射那樣。框架
AutoMapper包含如下功能:工具
平展、投影、配置驗證、列表和數組、嵌套映射、自定義類型轉換程序、自定義值轉換程序 、自定義值格式程序 、Null值替換spa
AutoMapper是一款單向映射器。設計
這意味着它並無內建映射對象支持來回寫至原始源,除非用戶在更新映射對象以後明確地建立逆向反射。code
這須要 經過設計完成,由於讓DTO回寫到,比方說:域模型或其餘東西,就會更改它的持久性,同時人們也認爲它是反模式的。在這種解決方案中,命令消息在雙向映射 中每每是更好的選擇。對象
然而,在某些特定環境中,有人可能會爲雙向映射辯解,好比:很是簡單的CRUD應用程序。一個支持雙向映射的框架就是Glue。
話很少說,上代碼,共有兩個實體類
class People { public string Name { get; set; } public int Age { get; set; } } class Person { public string Name { get; set; } public int Age { get; set; } }
假設在項目中有此需求,將兩個類的數據進行交換,咱們一般的作法是
static void Main(string[] args) { People p = new People() { Name = "text1", Age = 12 }; Person person = new Person(); person.Name = p.Name; person.Age = p.Age; Console.WriteLine(person.Name); Console.WriteLine(person.Age); Console.Read(); }
可是咱們發現,這樣費力不討好,並且咱們還發現,這兩個類裏面的屬性實際上是近似的,因此,AutoMapper就是爲了應對這種情景