使用继承更新到版本4后出现问题。我有以下代码:
public abstract class CarDA
{
}
public class StationCarDA : CarDA
{
}
public abstract class CarBL
{
public CarBL(string type)
{
}
}
public class StationCarBL : CarBL
{
public StationCarBL() : base("stationcar") {}
}
Mapper.CreateMap<CarDA, CarBL>()
.Include<StationCarDA, StationCarBL>();
Mapper.CreateMap<StationCarDA, StationCarBL>();
var dataAccessObject = new StationCarDA();
var result = Mapper.Map<CarDA, CarBL>(dataAccessObject);
在dotnetfiddle上试试:https://dotnetfiddle.net/p3JeNO
这在以前的版本中有效,因此结果是一个StationCarBL实例。现在我收到以下错误:
映射类型: CarDA - &gt; CarBL Test.CarDA - &gt; Test.CarBL
目的地路径: CarBL
来源价值: Test.StationCarDA
堆栈追踪:
[System.ArgumentException:Type需要有一个带0 args或只有可选args的构造函数 参数名称:type]
[AutoMapper.AutoMapperMappingException:
映射类型: CarDA - &gt; CarBL Test.CarDA - &gt; Test.CarBL
目的地路径: CarBL
来源价值: Test.StationCarDA]
这条消息对我没有意义。我已经定义了CarDA - &gt; CarBL映射以及它为什么要映射到抽象的CarBL?