C# 自动映射和隐式算子-无限循环
我有viewModel类和boClass,我想把viewModel对象传递给一个接受boClass对象的方法。因此,我决定使用隐式运算符,正如您在示例中看到的那样C# 自动映射和隐式算子-无限循环,c#,automapper,C#,Automapper,我有viewModel类和boClass,我想把viewModel对象传递给一个接受boClass对象的方法。因此,我决定使用隐式运算符,正如您在示例中看到的那样 public class MyClassViewModel { public string Subject { get; set; } [Required] public string Message { get; set; } public sta
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; }
}
公共类MyClassViewModel
{
公共字符串主题{get;set;}
[必需]
公共字符串消息{get;set;}
公共静态隐式运算符MyClassBO(MyClassViewModel vm)
{
返回Mapper.Map(vm);
}
}
公共类MyClassBO
{
公共字符串主题{get;set;}
公共字符串消息{get;set;}
}
我在隐式操作符方法中使用AutoMapper。如果向配置中添加cfg.CreateMap()
,效果会很好
如果我不这么做,automapper,出于某种原因,再次调用隐式操作符方法,我将得到automapper和隐式操作符方法的无限循环
我的问题是:
看起来AutoMapper将在尝试使用反射实现它的魔力之前查找隐式强制转换。所以,要么不要在隐式操作符中使用AutoMapper,要么只使用AutoMapper而不是隐式cast。为什么要坚持使用糟糕的设计,并且必须为其找到解决方法?