首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在AutoMapper中使用全局忽略?

如何在AutoMapper中使用全局忽略?
EN

Stack Overflow用户
提问于 2011-12-29 03:41:41
回答 5查看 3.5K关注 0票数 2

下面是现在的样子。DestinationA和DestinationB是从某些DestinationBase类派生出来的。我需要忽略所有这些派生类的一些公共属性。全局是否可以应用这些忽略选项,而不必对所有派生目标类重复使用?

代码语言:javascript
运行
复制
Mapper.CreateMap<SourceA, DestinationA>()
      .ForMember(d => d.PropA, opt => opt.Ignore())
      .ForMember(d => d.PropB, opt => opt.Ignore())
      .ForMember(d => d.PropC, opt => opt.Ignore());

Mapper.CreateMap<SourceB, DestinationB>()
      .ForMember(d => d.PropA, opt => opt.Ignore())
      .ForMember(d => d.PropB, opt => opt.Ignore())
      .ForMember(d => d.PropC, opt => opt.Ignore());

我期待着这样的事情:

代码语言:javascript
运行
复制
Mapper.CreateMap<DestinationBase>().ForAllSource()
      .ForMember(d => d.PropA, opt => opt.Ignore())
      .ForMember(d => d.PropB, opt => opt.Ignore())
      .ForMember(d => d.PropC, opt => opt.Ignore());
EN

Stack Overflow用户

发布于 2017-10-08 22:22:58

您可以忽略所有未映射的全局属性。虽然这与automapper的主要优点相矛盾,但只允许进行显式映射:这是Automapper 6的:

代码语言:javascript
运行
复制
    var mapperConfiguration = new MapperConfiguration(cfg =>
    {
        cfg.AddProfile(new MyProfile());
        // ignore all unmapped properties globally
        cfg.ForAllMaps((map, exp) => exp.ForAllOtherMembers(opt => opt.Ignore()));
    });
票数 3
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8663771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档