使用DTO对象和c#继承

本文关键字:继承 对象 DTO 使用 | 更新日期: 2023-09-27 18:08:26

我有以下DTO对象:

class ParentDTO
{
  property1;
  property2;
}
class ChildDTO : ParentDTO
{
  property3;
}

和正常对象我想转向DTO:

class Parent
{
  property1;
  property2;
}
class Child : Parent
{
  property3;
}

(假设我不能直接使用父类和子类,我需要使用dto)

将这些转换为dto的正确方法是什么?我试着写方法:

object ConvertToDTO<T>(T objectToConvert);

它将根据对象的类型将任何对象转换为DTO对象,然后将其框入object。这是正确的做法吗?

多谢!

使用DTO对象和c#继承

有大量的库可以将一个对象映射到另一个对象。"手工"实现所需的大量样板文件编写起来很繁琐,而且容易出错。

我建议您查看一下AutoMapper(它具有继承情况所需的所有功能)。

对于映射对象,我广泛使用AutoMappervalueinjecter之类的东西。创建自己的映射方法或类没有害处。然而,需求更有可能增长,您可能更喜欢使用AutoMapper之类的东西。如果您想创建自己的映射,最好从这样的类开始:

public class Mapper<DTO>{} 

,这个类可以根据您可能需要的映射需求而增长。

关于如何设计和解决与继承相关的问题,没有什么方法是疯狂的,你可以从抽象类或者使用接口开始。编程既是科学又是艺术,请发挥你的想象力和技能。