博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AutoMapper: Mapper.Initialize() 只能调用一次,Why?
阅读量:4946 次
发布时间:2019-06-11

本文共 2338 字,大约阅读时间需要 7 分钟。

最开始的代码

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Reflection; 7  8 using AutoMapper; 9 10 using Happy.ExtentionMethods;11 using Happy.Bootstrap;12 13 namespace Happy.Bootstrap.AutoMapper14 {15     /// 16     /// 自动添加配置。17     /// 18     public class AutoAddProfilePlugin : IBootstrapPlugin19     {20         /// 
21 public void Start(IBootstrapService bootstrapService, Assembly assembly)22 {23 bootstrapService.MustNotNull("bootstrapService");24 assembly.MustNotNull("assembly");25 26 foreach (var type in assembly.GetTypes())27 {28 if (type.IsAbstract || type.IsInterface)29 {30 continue;31 }32 33 if (typeof(Profile).IsAssignableFrom(type))34 {35 Mapper.Initialize(x => {36 x.AddProfile(Activator.CreateInstance(type) as Profile);37 });38 }39 }40 }41 }42 }

问题

我的项目中,每个 dll 都是自描述的,系统启动的时候,对每个 dll 对执行上面的插件,结果, Mapper.Initialize() 只有最后一次配置才有效,前面的配置会丢失。

最后的代码

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Reflection; 7  8 using AutoMapper; 9 10 using Happy.ExtentionMethods;11 using Happy.Bootstrap;12 13 namespace Happy.Bootstrap.AutoMapper14 {15     /// 16     /// 自动添加配置。17     /// 18     public class AutoAddProfilePlugin : IBootstrapPlugin19     {20         /// 
21 public void Start(IBootstrapService bootstrapService, Assembly assembly)22 {23 bootstrapService.MustNotNull("bootstrapService");24 assembly.MustNotNull("assembly");25 26 foreach (var type in assembly.GetTypes())27 {28 if (type.IsAbstract || type.IsInterface)29 {30 continue;31 }32 33 if (typeof(Profile).IsAssignableFrom(type))34 {35 Mapper.AddProfile(Activator.CreateInstance(type) as Profile);36 }37 }38 }39 }40 }

 

转载于:https://www.cnblogs.com/happyframework/p/3516862.html

你可能感兴趣的文章
docker数据卷(转)
查看>>
地图定位及大头针设置
查看>>
oracle常用小知识点
查看>>
CATransform3D参数的意义
查看>>
怎么自己在Objective-C中创建代理
查看>>
Under Armour Drive 4 Performance Reviews
查看>>
C#操作目录和文件
查看>>
警惕数组的浅拷贝
查看>>
百度地图 导航
查看>>
SQLServer 错误: 15404,无法获取有关 Windows NT 组
查看>>
html5全局属性
查看>>
【转】Android Hook框架Xposed详解
查看>>
Android 有用代码片段总结
查看>>
英语各种时态例句
查看>>
从下往上看--新皮层资料的读后感 第三部分 70年前的逆向推演- 从NN到ANN
查看>>
(转)系统引导管理器GRUB详解
查看>>
数据访问C#入门经典第21章-读写压缩数据
查看>>
PHP超时处理全面总结(转)
查看>>
利用python进行数据分析--pandas入门2
查看>>
[zz]使用 libevent 和 libev 提高网络应用性能
查看>>