映射父类中的值
本文关键字:父类 映射 | 更新日期: 2023-09-27 18:25:17
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。为了编写更少的代码,我想使用父类的映射器。
ParentItemDTO.Map(model)
此行返回类型为 ParentItemDTO
问题 - 如何将父类转换为子类?首先,我认为这将是工作,而我明白只有相反的方式起作用(从孩子到父母(
如果要
重用父类映射,可以更改/重载映射以传递到要映射到的实例:
var retModel = new ChildItemDTO();
ParentItemDTO.Map(model, retModel);
// map child-specific fields here
AutoMapper 具有类似的功能,可让您传入实例进行填充以及返回新实例。
不能直接将父级强制转换为子级。 C# 继承不是这样工作的。您可以选择使用父属性创建新的 Child 对象
var parentModel = ParentItemDTO.Map(model);
var retModel = new ChildItemDTO
{
Name= parentModel.Name,
Age= parentModel.Age,
};