.NET6 配置 AutoMapper 与 AutoFac

发布时间 2023-11-02 13:49:58作者: IAMLCW

AutoMapper

 

概述
1、什么是AutoMapper
简单来说,AutoMapper就是一个用C#语言开发的一个轻量的处理一个实体对象到另外一个实体对象映射关系的组件库

 

官网地址:AutoMapper

 

文档地址:AutoMapper — AutoMapper documentation

 

2、为什么要用AutoMapper
层与层之间的数据转换是非常常见的事情,最简单的方式就是手动复制,(尤其使用SqlSugar之后,如果不做特殊处理,数据查询的结果一般为全字段,但是在业务层,我们提供的对外接口一般只返回有限的部分字段)当然,使用AutoMapper之后可以大大简化繁琐的工作。

快速开始

 

一、Net 6环境下的.net core项目里如何使用AutoMapper实现依赖注入。

  注: AutoMapper 是一个对象-对象映射器,可以将一个对象映射到另一个对象。

  第一步,在Nuget引入AutoMapper、AutoMapper.Extensions.DependencyInjection这两个NuGet包

 

  第二步,定义Profile,方便对注入服务进行管理:

 

 

 

  第三步,在Program.cs中注册:

 

  第四步,在构造函数中注入:

 

   第五步,在方法中进行调用Map存储:

 

   主要负责将一个数据对象的数据映射到另一个模型上 RoleDto=>Role 这样一个映射关系

AutoFac

 

1 基本概念

1.1 相关名词

依赖倒置(DIP)

控制反转(IoC:Inversion of control)

注入(DI:Dependency injection)

1.2 个人理解

DIP 依赖倒置原则:程序要依赖于抽象,不要依赖于细节(具体实现)。其中抽象一般指接口(Interface),细节指类(Class)。

IoC 一般翻译为控制反转,主要是为了降低模块与模块之间代码的耦合度,是一种理念,一种设计原则。

DI 是 IoC 的一种实现方式,为依赖注入的方式。具体做法就是通过一个统一的容器(DI 容器),来管理对象的创建和生命周期。

2 使用步骤

2.1 基本使用

  1. 引入 Autofac
  2. 在程序入口处:创建容器(Create a ContainerBuilder),注册服务/组件(Register Components),构建并存储容器(Build and store)
  3. 在程序执行过程中:从容器中创建拥有生命周期的实例(lifetime scope)

一、Net 6环境下的.net core项目里如何使用Autofac实现依赖注入。

 

  通常的,我们把其他服务注入到Controller时,使用.net core自带的依赖注入即可,但是如果我们要实现自定义服务注册时,就要用到第三方IOC容器组件。推荐Autofac。

 

  第一步,在Nuget引入Autofac、Autofac.Extensions.DependencyInjection这两个NuGet包

 

 

  第二步,定义Module,方便对注入服务进行管理:

 

 

 

 

 

 

  这里注意:根据名称约定 查询到的程序集 的命名规则必须规范 否则可能读取不到 对应的数据集 从而报错

 

  

 

  第三步,在Program.cs中注册:

 

 

 

 

 

  new AutoFacManager() 调用我们定义的方法

 

  第四步,在构造函数中注入:

 

  

 

 

 

 

 

   这里 我们就不用再像 如下方法单个引用 

 

 

 

 

  Autofac 会自己储存到IOC容器里面进行控制反转 实现接口 从而省去很多代码

 

  现在就跟.net core自带的注入方式用法一样,这里直接注入Controller了,往其他层注入也是一样的写法。