当我的自动映射器映射对象并且它是嵌套的复杂对象时,我遇到了问题。例如,我有一个报告类,如下所示:
public class Report
{
public virtual Guid Id { get; set; }
public virtual string Title { get; set; }
public virtual Status Status { get; set; }
}
此外,我对此对象有一个模型,如下所示:
public class ReportModel
{
public Guid Id { get; set; }
public string Title { get; set; }
public StatusModel Status { get; set; }
}
Status类如下:
public class Status
{
public virtual int Id { get; set; }
public virtual string Title { get; set; }
}
,并且StatusModel类与Status类相同。
我的映射器如下:
var cfg = new MapperConfigurationExpression();
cfg.CreateMap<Status,StatusModel>()
.ForMember(x => x.Title,o => o.MapFrom(s => TranslateValue(s.Title))).ReverseMap();
cfg.CreateMap<Report,Report>().ReverseMap();
我的问题是,在很多情况下,当我将自动映射器用于类Report时,我需要翻译Status标题,此代码可以。但是在某些特定情况下,当我将自动映射器用于Report类时,不应翻译Status对象的标题。
因此,在某些特定情况下,我需要告诉自动映射器停止自动映射嵌套对象。对于这种情况有什么解决方案吗?
PS:AutoMapper的版本是7.0.1.0
谢谢。