BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

AutoMapper 3加入了对开放式泛型以及回调的支持

| 作者 Jonathan Allen 关注 612 他的粉丝 ,译者 邵思华 关注 3 他的粉丝 发布于 2015年1月10日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

AutoMapper是.NET平台上最流行的对象与对象之间映射的类库,该类库最近更新到3.3版本。新版本中加入了许多新特性,包括对开放式泛型以及回调的支持。不出意外的话,AutoMapper 3.3应该是3.x系列的最后一次更新了。

自定义目标类型的构造函数

这一特性允许开发者传入一个lambda表达式,用以实现自定义的构造函数调用。通常来说,这一特性并非必需,因为AutoMapper本身就能够将源类型的属性映射为构造函数的参数。按照文档所说,“除非AutoMapper不能够正确地对目标类型的构造函数进行映射,或者是需要在构造函数执行过程中进行某些自定义操作,否则无需使用这一方法。”

开放式泛型

开放式泛型是指,对于List<T>这样的类型,在它的类型参数T未被指定之前,就叫做开放式泛型。在之前版本的AutoMapper中,你只能使用已关闭的泛型,例如List<int>或List<string>。而现在,你能够编写这样的代码了:

Mapper.CreateMap(typeof(List<>), typeof(ObservableCollection<>));

映射操作运行前后

新版本允许为映射操作添加回调方法,这些方法的执行时机是在某个对象即将被映射之前,或是该对象刚刚被映射之后。在新版本的文档所提供的示例中,目标对象的Name属性被设置为HttpContext.Current.Identity.Name的值,而不是来自于源对象的任何属性。

替换成员名称

在新版本中,你不仅能够替换整个成员的名称,还可以替换成员名称中的个别字符,例如将加了重音é符号替换为不加修饰的e。无论在成员的名称中是否存在这一字符,映射过程中总会执行这一操作。

其它特性

在新版本的声明发布说明中还提到了一些其它特性

查看英文原文: AutoMapper 3 Adds Open Generic and Callback Support

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT