我有viewModel类和boClass,我想将视图模型对象传递给接受boClass对象的方法。因此,我决定使用隐式运算符,如示例中所示。
public class MyClassViewModel
{
public string Subject { get; set; }
[Required]
public string Message { get; set; }
public static implicit operator MyClassBO(MyClassViewModel vm)
{
return Mapper.Map<MyClassBO>(vm);
}
}
public class MyClassBO
{
public string Subject { get; set; }
public string Message { get; set; }
}
我在隐式运算符方法中使用AutoMapper。如果我将cfg.CreateMap<MyClassViewModel , MyClassBO>()
添加到配置中,它的效果很好。
如果我不这样做,自动缓冲器由于某种原因再次调用隐式运算符方法,我得到了无限循环的AutoMapper和隐式运算符方法。
我的问题是:
为什么会这样,我该如何解决?如果我忘记使用CreateMap,我不想让服务器崩溃。
如果CreateMap是解决问题的唯一方法,是否可以选择仅为我的AutoMapper配置文件中不存在的类组合添加CreateMap?