public class DataModule : IModule{public void Configure(IMapperConfigurationExpression cfg){//cfg.CreateMap<ApproveAtcPo, ApproveAtcVo>().ReverseMap();
       }}

         /// <summary>/// 注册需要转换的类型/// </summary>private PoMapper(){AutoMapper.Mapper.Initialize(cfg =>{                //多模块注册方式new DataModule().Configure(cfg);new AliasModule().Configure(cfg); });}

 1     public class MapperTool
 2     {
 3         private static volatile MapperTool mapper = null;
 4         private static object syncRoot = new Object();
 5         public static readonly List<Type> typeList = null;
 6         /// <summary>
 7         /// 注册需要转换的类型
 8         /// </summary>
 9         private MapperTool()
10         {
11             Mapper.Initialize(cfg =>
12             {
13                 //指定不同属性映射demo
14                 //cfg.CreateMap<auth_userVo, t_auth_user>()
15                 //   .ReverseMap()
16                 //   .ForMember(dest => dest.id, opt => opt.MapFrom(src => src.rid))
17                 //   .ForMember(dest => dest.update, opt => opt.MapFrom(src => src.create));
18
19             });
20             //验证是否所有字段都转换了
21             //Mapper.Configuration.AssertConfigurationIsValid();
22         }
23
24         private MapperTool(List<Type[]> TypeList)
25         {
26             Mapper.Initialize(cfg =>
27             {
28                 foreach (var type in TypeList)
29                 {
30                     cfg.CreateMap(type[0], type[1]).ReverseMap();
31                 }
32             });
33         }
34
35
36         /// <summary>
37         /// 初始化注册Mapper
38         /// </summary>
39         public static MapperTool Instance
40         {
41             get
42             {
43                 if (mapper == null)
44                 {
45                     lock (syncRoot)
46                     {
47                         if (mapper == null)
48                         {
49                             mapper = new MapperTool();
50                         }
51
52                     }
53                 }
54                 return mapper;
55             }
56         }
57
58         /// <summary>
59         /// 传入需要转换的对象
60         /// </summary>
61         /// <typeparam name="F">需要转换的对象类型</typeparam>
62         /// <typeparam name="T">转换目标对象类型</typeparam>
63         /// <param name="f">需要转换的对象</param>
64         /// <returns>目标对象</returns>
65         public T Map<F, T>(F f)
66             where F : new()
67             where T : new()
68         {
69             return Mapper.Map<F, T>(f);
70         }
71     }

View Code

转载于:https://www.cnblogs.com/zzlblog/p/10013182.html

封装一个Automapper单例相关推荐

  1. php打包mysql_PHP封装MySQL的单例

    //封装MySQL单例 class MySQLDB { private $host;//主机地址 private $port;//端口号 private $user;//用户名 private $pw ...

  2. 封装mysql数据库操作系统_封装MySQL的单例,连接数据库并对数据进行增删改查操作...

    //私有的构造方法用来阻止在类的外部实例化private function __construct($param){$this->initData($param);$this->conne ...

  3. Java单例设计模式(实现Java的一个类只有一个对象)

    单例设计模式的定义:单例设计模式是一种软件设计模式,在它的核心包含一个称为单例类的核心类. 核心便是希望一个类只有一个对象.  如何实现类在内存中只有一个对象呢? 第一步:构造私有: 第二步:本身提供 ...

  4. Unity的MonoBehaviour单例设置

    Unity的MonoBehaviour单例设置 MonoBehaviour的基本单例模式 MonoBehaviour单例的泛型基类 MonoBehaviour单例脚本的问题 解决方案 互斥锁Mutex ...

  5. 【Kotlin】Kotlin 单例 ( 懒汉式 与 恶汉式 | Java 单例 | Kotlin 单例 | 对象声明 | 伴生对象 | get 方法 | ? 与 !! 判空 )

    文章目录 I . 单例的懒汉式与恶汉式 II . Java 中的懒汉式与恶汉式 III . Kotlin 中对应 Java 的懒汉式与恶汉式 IV . Kotlin 对象 ( object ) 声明 ...

  6. iOS之深入解析单例的实现和销毁的底层原理

    一.单例的概念 单例设计模式确保对于一个给定的类只有一个实例存在,这个实例有一个全局唯一的访问点.它通常采用懒加载的方式在第一次用到实例的时候再去创建它. 单例可以保证在程序运行过程,一个类只有一个实 ...

  7. java httpclient单例_java-8 – CloseableHttpClient.execute每隔几周就会冻结一次,尽管超时...

    我们有一个groovy单例,使用PoolingHttpClientConnectionManager(httpclient:4.3.6),池大小为200,以处理与搜索服务非常高的并发连接并处理xml响 ...

  8. Python(25)-单例设计模式

    单例设计模式 1.单例设计模式 2.__new__方法 3.初始动作只执行一次 本系列博文来自学习<Python基础视频教程>笔记整理,视屏教程连接地址:http://yun.itheim ...

  9. 关于跨dll的模板单例问题

    C++的模板可以帮助我们编写适合不同类型的模板类,给代码的复用性提供了极大的方便.近来写了一个涉及单例的C++模板类,简化下来可以归结为以下的代码: 1 2 3 4 5 6 7 8 9 10 11 t ...

  10. android懒加载单实例,【 Android 10 设计模式 】系列 -- 单例

    前言 由于源码分析的代码量比较大,大部分博客网站的内容显示页面都比较窄,显示出来的效果都异常丑陋,所以您也可以直接查看 < Thinking in Android > 来阅读这边文章,希望 ...

最新文章

  1. 【Perl】二维数组
  2. Spring-boot注入配置为java静态属性
  3. 模仿github网页前端HTML,仿github404页面特效
  4. 开源Math.NET基础数学类库使用(11)C#计算相关系数
  5. 跨域请求之JSONP
  6. Hibernate中的inverse属性和cascade属性
  7. leetcode-832-Flipping an Image
  8. [python]如何清屏?也就是实现clear?
  9. 你真的理解BIO、NIO、AIO的区别吗?
  10. canvas压缩图片成base64,传到后台解码需要注意的问题
  11. PHP中Trait详解及其应用
  12. 数字图像处理 冈萨雷斯 (内含算法链接)
  13. java jwt 单点登录_jwt技术实现系统间的单点登录
  14. 网站点击流数据分析项目
  15. 512-rear chassis fan not detected的解决方法
  16. java当前不可用,java代码向服务端狂发消息,导致的服务器连接通道不可用
  17. 超越源域的攻击:面向黑盒域制作对抗样本
  18. SpringMVC几个模型对象
  19. 图书信息管理系统(数据结构顺序表,c语言版)
  20. 干货|app自动化测试之Appium 原理 与 JsonWP 协议分析

热门文章

  1. Flutter之EdgeInsetsGeometry简析
  2. arraylist扩容是创建新数组吗 java_手撕ArrayList底层,透彻分析源码
  3. java如何输入字符串_在java中如何将一个输入了 InputStream转为一个字符串String?...
  4. 面向流批一体的 Flink Runtime 新进展
  5. 重磅!Apache Flink 1.11 功能前瞻来啦
  6. java中判断当前日期是星期几
  7. 几个清华、北邮、同济学霸的公号,值得关注
  8. MMP,我兄弟转正前一天,一个垃圾公司把他辞退了!
  9. @configuration注解_SpringBoot注解大全,收藏一波!!!
  10. java案例代码20--斗地主V2