c# - AutoMapper 跳过所有空属性,然后允许一些空值

标签 c# automapper

有没有办法告诉 AutoMapper 跳过所有空属性(因为我的对象有 50 个属性),然后允许某些属性为空后记?

换句话说,我宁愿不将应该跳过的 49 个属性“列入白名单”。我宁愿将它们全部默认为跳过,然后将其“列入白名单”以允许空值。

第一部分当然可能像我想象的那样。

Mapper.CreateMap<MyClassA, MyClassB>()                
.ForAllMembers(opt => opt.Condition(srs => !srs.IsSourceValueNull));

最佳答案

您可以使用 AfterMap 手动映射某些属性并跳过所有其他空属性:

Mapper.CreateMap<MyClassA, MyClassB>()
      .AfterMap((a,b) => b.Foo = a.Foo) // will be mapped if Foo is null
      .ForAllMembers(opt => opt.Condition(srs => !srs.IsSourceValueNull));

关于c# - AutoMapper 跳过所有空属性,然后允许一些空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19778669/

相关文章:

c# - 从控制台应用程序打开文档时可以禁用 Word 按钮吗?

c# - 在 C# 中的 C/C++ DLL 中使用嵌套结构指针

c# - AutoMapper 映射到可空属性的属性

c# - Automapper null 集合变空

c# - 尝试在 formview 中绑定(bind)下拉列表时出现空引用异常

c# - 如何在 Xamarin IOS C# 上的项目中添加设计

c# - 2d 10 :00:00 to TimeSpan in C#

c# - AutoMapper 花费 4 秒绘制 19 个对象

c# - 使用 AutoMapper 从接口(interface)推断目标类型

c# - 是否可以使用 AutoMapper 自动映射除一些复杂属性之外的所有属性?