代码之家  ›  专栏  ›  技术社区  ›  GuRAm

ForAllOtherMembers排除基本属性

  •  1
  • GuRAm  · 技术社区  · 6 年前

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

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

    这就是我想要的,但它也会忽略目标类基类中的属性(BaseA的属性)。 我想使用AutoMapper映射类的一些属性来映射它们(基类的属性)。 我希望函数的代码如下: 1、映射A类的一些属性 2、映射BaseA中的所有属性(以及BaseBaseA、BaseBaseA等) 3、忽略A类中的所有其他属性

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

    P、 S。 我正在从v3升级AutoMapper。2.1至v6。2.2。 我使用的函数忽略了类A中所有未映射的属性(BaseA属性是正常映射的)。在新的AutoMapper更改后,我不能使用相同的功能-我正在寻找其他方法来实现这一点。

    1 回复  |  直到 6 年前
        1
  •  0
  •   GuRAm    6 年前

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

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

    在改变了AutoMapper的结构之后,我在我的项目中改变了很多。 我想,升级AutoMapper init项目的人会使用此代码,例如我的代码。。