1

我正在使用 AutoMapper 6.2.2 映射 A 类的一些属性,对于所有其他成员,我使用以下代码忽略它们:

expression.ForAllOtherMembers(f => f.Ignore());

这就是我想要的,但它也忽略了目标 A 类的基类中的属性(BaseA 的属性)。我想使用 AutoMapper 映射它们(来自基类的属性)和映射 A 类的一些属性。我想要这样的代码函数: 1. 映射 A 类中的一些属性 2. 映射 BaseA(和 BaseBaseA、BaseBaseBaseA 等)中的所有属性 3. 忽略 A 类中的所有其他属性

如果有人有任何想法,请帮助。谢谢。

PS 我正在将 AutoMapper 从 v3.2.1 升级到 v6.2.2。我正在使用函数,它忽略了 A 类中所有未映射的属性(BaseA 属性已正常映射)。更改新的 AutoMapper 后,我无法使用相同的功能 - 我正在寻找替代方法来执行此操作。

4

1 回答 1

0

我找到了解决方案,我使用当前类比较实现了这一点:

var destType = typeof(TDestination); expression.ForAllOtherMembers(f => { if (f.DestinationMember.DeclaringType == destType) f.Ignore(); });

改变 AutoMapper 的结构后,我的项目发生了很大变化。我认为,升级 AutoMapper init 项目的人会使用此代码,例如我的情况。

于 2018-04-13T07:54:44.073 回答