AutoMapper和隐式运算符 - 无限循环

时间:2018-04-24 17:37:30

标签: c# automapper

我有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和隐式运算符方法。

我的问题是:

  1. 为什么会这样,我该如何解决?如果我忘记使用CreateMap,我不想让服务器崩溃。

  2. 如果CreateMap是解决问题的唯一方法,是否可以选择仅为我的AutoMapper配置文件中不存在的类组合添加CreateMap?

0 个答案:

没有答案