1.AutoMapper简单介绍

Posted 乾子大大

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.AutoMapper简单介绍相关的知识,希望对你有一定的参考价值。

官网:http://automapper.org/

源码:https://github.com/AutoMapper/AutoMapper

NUGET安装:

PM> Install-Package AutoMapper

AutoMapper是基于对象到对象约定的映射工具,常用于(但并不仅限制于)把复杂的对象模型转为DTO,一般用于ViewModel模式和跨 服务范畴。

AutoMapper给用户提供了便捷的配置API,就像使用约定来完成自动映射那样。

AutoMapper包含以下功能:

平展、投影、配置验证、列表和数组、嵌套映射、自定义类型转换程序、自定义值转换程序 、自定义值格式程序 、Null值替换

AutoMapper是一款单向映射器。

这意味着它并没有内建映射对象支持来回写至原始源,除非用户在更新映射对象之后明确地创建逆向反射。

这需要 通过设计完成,因为让DTO回写到,比方说:域模型或其他东西,就会更改它的持久性,同时人们也认为它是反模式的。在这种解决方案中,命令消息在双向映射 中往往是更好的选择。

然而,在某些特定环境中,有人可能会为双向映射辩解,比如:非常简单的CRUD应用程序。一个支持双向映射的框架就是Glue。

AutoMapper 解决什么需求

话不多说,上代码,共有两个实体类

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

以上是关于1.AutoMapper简单介绍的主要内容,如果未能解决你的问题,请参考以下文章

博客园排版简单介绍

为啥这段代码会泄露? (简单的代码片段)

.NET开发应该了解的10个库

代码片段 - Golang 实现简单的 Web 服务器

创建自己的代码片段(CodeSnippet)

简单的方法来分享/讨论/协作的代码片段?