C# 自动映射内联忽略

C# 自动映射内联忽略,c#,automapper,C#,Automapper,我正在使用自动映射器将源对象映射到目标对象,我已将映射器配置为: Mapper.Initialize(cfg => { cfg.CreateMap< SourceModel, DestModel>(); } CreateMap< SourceModel, DestModel>() .ForMember(x => x.CreatedDateTime, opt => opt.Ignore()); Mapper.Initiali

我正在使用自动映射器将源对象映射到目标对象,我已将映射器配置为:

Mapper.Initialize(cfg => {    
   cfg.CreateMap< SourceModel, DestModel>();   
}
 CreateMap< SourceModel, DestModel>()
   .ForMember(x => x.CreatedDateTime, opt => opt.Ignore());
Mapper.Initialize(cfg=>{
CreateMap();
}
此源和目标对象映射在许多地方都使用,现在在某些情况下,我必须忽略其中一个源模型字段,但不是所有地方都使用。我可以这样做:

Mapper.Initialize(cfg => {    
   cfg.CreateMap< SourceModel, DestModel>();   
}
 CreateMap< SourceModel, DestModel>()
   .ForMember(x => x.CreatedDateTime, opt => opt.Ignore());
CreateMap()
.ForMember(x=>x.CreatedDateTime,opt=>opt.Ignore());
但这将忽略所有场景的CreatedDateTime属性,所以我只想内联执行

 Mapper.Map< DestModel>(sourceObject); //Here I want to ignore one property.
Mapper.Map(sourceObject);//这里我想忽略一个属性。

请帮助我如何实现这一点。

听起来您需要条件映射

答案如此显示如何使用它和文件可以找到

用法示例:

Mapper.CreateMap<SourceModel, DestModel>()
 .ForMember(dest => dest.CreatedDateTime, opt => opt.Condition(source => source.Id == 0))
Mapper.CreateMap()
.FormMember(dest=>dest.CreatedDateTime,opt=>opt.Condition(source=>source.Id==0))

可能的重复除了条件映射之外,还有什么选项我们只能以内联方式进行吗?Mapper.Map(sourceObject);我能想到的唯一其他方法是有两个独立的目标类(从公共基继承)并为每个类创建一个地图,即在一个日期和一个忽略它的日期。不知道这在你尝试做的更大计划中是否可行。