使用DTO对象和C#继承

时间:2014-06-13 14:30:55

标签: c# .net-4.5 dto

我有以下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。这是正确的做法吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

有很多库用于将一个对象映射到另一个对象。 实现这个&#34;手工和#34;所需的样板量编写和容易出错是很乏味的。

我建议查看AutoMapper(它包含继承案例所需的所有内容)。

答案 1 :(得分:0)

对于映射对象,我广泛使用了AutoMappervalueinjecter之类的东西。创建自己的映射方法或类没有任何害处。但是,更有可能需求会增加,您可能更喜欢使用AutoMapper之类的内容。如果您想创建自己的映射,最好从类开始:

public class Mapper<DTO>{} 

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

在如何设计和解决与继承相关的问题方面,没有疯狂的方法,你可以从抽象类开始,也可以使用接口。因为,编程是科学和艺术,使用你的想象力和技能。