AutoMapper 8.0的应用--动态配置
AutoMapper 8.0中,需要使用configure来配置mapper。为此,实现动态的类型配置如下
public static class AutoMapHelper
{
private static bool ConfigExist(Type srcType, Type destType)
{
return Mapper.Configuration.FindMapper(new TypePair(srcType, destType)).IsNull();
}
private static bool ConfigExist<TSrc, TDest>()
{
return Mapper.Configuration.FindMapper(new TypePair(typeof(TSrc), typeof(TDest))).IsNull();
}
public static T MapTo<T>(this object source)
{
if (source.IsNull())
{
return default(T);
}
if (!ConfigExist(source.GetType(), typeof(T)))
{
Mapper.Initialize(cfg => cfg.CreateMap(source.GetType(), typeof(T)));
}
return Mapper.Map<T>(source);
}
public static IList<T> MapTo<T>(this IEnumerable source)
{
foreach (var first in source)
{
if (!ConfigExist(first.GetType(), typeof(T)))
{
Mapper.Initialize(cfg => cfg.CreateMap(first.GetType(), typeof(T)));
}
break;
}
return Mapper.Map<IList<T>>(source);
}
public static IList<TDest> MapTo<TSource, TDest>(this IEnumerable<TSource> source)
{
if (!ConfigExist<TSource, TDest>())
{
Mapper.Initialize(cfg => cfg.CreateMap<TSource, TDest>());
}
return Mapper.Map<IList<TDest>>(source);
}
public static TDest MapTo<TSource, TDest>(this TSource source, TDest dest)
where TSource : class
where TDest : class
{
if (source.IsNull())
{
return dest;
}
if (!ConfigExist<TSource, TDest>())
{
Mapper.Initialize(cfg => cfg.CreateMap<TSource, TDest>());
}
return Mapper.Map<TDest>(source);
}
}
AutoMapper 8.0的应用--动态配置相关推荐
- springboot整合Quartz实现动态配置定时任务
版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/liuchuanhong1/article/details/60873295 前言 在我们日常的开发中,很多 ...
- 分布式动态配置后浪推前浪 -- Nacos
???? 前言 Nacos 是阿里巴巴的开源的项目,全称 Naming Configuration Service ,专注于服务发现和配置管理领域. Nacos 致力于帮助您发现.配置和管理微服务.N ...
- kafka原理_Kafka动态配置实现原理解析
总 第19篇 2019年 第15篇 一.问题导读Apache Kafka在全球各个领域各大公司获得广泛使用,得益于它强大的功能和不断完善的生态.其中Kafka动态配置是一个比较高频好用的功能,下面我们 ...
- NGINX发布支持动态配置的开源Web服务器
\ 看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料! \ \\ NGINX最近发布了NGINX Unit 1.0版.NGINX Unit是一种开源的Web和 ...
- 微服务架构:动态配置中心搭建
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 在微服务架构中,服务之间有着错综复杂的依赖关系,每个服务都有自己的依赖配置,在运行期间很多配置会根据访问流量等因素进行调整,传统的配置信息 ...
- IdentityServer4-EF动态配置Client和对Claims授权(二)
IdentityServer4-EF动态配置Client和对Claims授权(二) 原文:IdentityServer4-EF动态配置Client和对Claims授权(二) 本节介绍Client的Cl ...
- Quartz 在 Spring 中如何动态配置时间
在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度. 有关调度的实现我就第一就想到了Quartz这个开源调度组件,因为很多项目使用过,Spring结合Quartz静态配置调度任务时间 ...
- Quartz 在 Spring 中如何动态配置时间--转
原文地址:http://www.iteye.com/topic/399980 在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度. 有关调度的实现我就第一就想到了Quartz这个开 ...
- Linux部署动态网页,Nginx发布支持动态配置的开源Web服务器
NGINX最近发布了NGINX Unit 1.0版.NGINX Unit是一种开源的Web和应用服务,它支持远程配置和动态配置,使得配置上的更改不会对服务造成中断.Unit 1.0还支持在同一实例中运 ...
最新文章
- 编译语言与解释语言,动态与静态,以及强类型和弱类型的区别
- 《人工智能转型手册》,吴恩达 著
- Spring(07)——单例注入多例之lookup-method
- CEGUI中文处理(补)
- Android被逼学习例子2
- Objective-C基础笔记(3)OC的内存管理
- HTML5 Canvas 绘图
- 无聊了就上来转转,看看大家发的东东也挺好玩的啊
- 关于5G被激烈讨论的那些争端和冲突
- libevent c++高并发网络编程_高并发-网络I/O
- 通过公众号注册小程序
- 815计算机考研科目,2019年“815-计算机专业基础综合”考试大纲
- 江苏省计算机一级主要考什么,江苏省计算机一级考试复习资料 很全面的
- Ubuntu SSE指令集 编程实例---复数乘法与共轭乘法
- (附源码)ssm基于jsp高校选课系统 毕业设计 291627
- Linux下安装realtek8812au /8814au 驱动
- CE162Lec06的学习记录
- C语言将一个简单的文件压缩
- Stammering Aliens
- 素质拓展·【团建宝】千岛湖皮划艇+露营+环岛骑行2日团建-【携程旅游】