官网: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就是为了应对这种情景