我有基类
public abstract class DtoBase //NOTICE that this class is abstract
{
//some DTO specific things
}
public class concreteA_Dto : DtoBase
{
//some properties from A
}
public class concreteB_Dto : DtoBase
{
//some properties from B
}
然后我有一些课程,他们彼此不认识和
public class concreteA //NOTICE that there is NO base class
{
//some properties from A
}
public class concreteB
{
//some properties from B
}
我想要的是以这种方式使用Automapper:
private DtoBase GetResourceDto(object value)
{
return Mapper.Map<DtoBase>(value);
}
到目前为止,我的映射看起来像这样:
CreateMap<concreteA, DtoBase>()
.Include<concreteA, concreteA_Dto>();
CreateMap<concreteA, concreteA_Dto>();
但是当我使用concreteA的某个实例调用方法GetResourceDto时,我将得到
自动播放器例外:
Mapping types:
concreteA-> DtoBase
#NAMESPACE.concreteA -> #NAMESPACE.DtoBase
Destination path:
DtoBase
内部异常
无法创建抽象类的实例。
请注意,#NAMESPACE是我的类
的命名空间如何执行适当的映射以避免此异常?
这背后的想法是,concreteA和concreteB可以动态地及时生长,可能有具体的C,具体的等等。 我不介意为更具体的类添加映射