public class ChildItemDTO: ParentItemDTO
{ ...
public static ChildItemDTO Map(ChildItem model)
{
if (model == null) return null;
var retModel = ParentItemDTO.Map(model) as ChildItemDTO ;
if (retModel != null)
{
...
}
return retModel;
}
}
好吧,我有父母和子女班。我想将模型值映射到DTO。 为了编写更少的代码,我想从Parent类中使用Mapper。
ParentItemDTO.Map(model)
此行返回ParentItemDTO
问题 - 如何将Parent类强制转换为Child类?首先,我认为这将是有效的,而我理解只有相反的方式(从孩子到父母)
答案 0 :(得分:0)
您无法直接将父级转换为子级。 C#继承不起作用。您的选择是使用父属性
创建一个新的Child对象 var parentModel = ParentItemDTO.Map(model);
var retModel = new ChildItemDTO
{
Name= parentModel.Name,
Age= parentModel.Age,
};
答案 1 :(得分:0)
如果要重用父类映射,可以更改/重载映射以传入实例以映射到:
var retModel = new ChildItemDTO();
ParentItemDTO.Map(model, retModel);
// map child-specific fields here
AutoMapper具有类似的功能,允许您传入实例以填充以及返回新实例。