2014-06-13 91 views
0

我有以下DTO對象: 與DTO對象和C#繼承工作

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對象,然後框它對象。這是正確的方法嗎?

非常感謝!

+2

[AutoMapper](https://github.com/AutoMapper/AutoMapper/wiki/Getting-started) – Habib

回答

1

有很多庫用來將一個對象映射到另一個對象。 實現這個「手工」所需的樣板文件的數量很繁瑣,而且容易出錯。

我會推薦檢查AutoMapper(它具有繼承情況下所需的一切)。

0

對於映射對象,我廣泛使用了類似AutoMappervalueinjecter的東西。創建自己的映射方法或類沒有任何壞處。然而,更有可能的要求會增加,你可能更喜歡使用類似AutoMapper。如果你想創建自己的映射,更好地與像類開始:

public class Mapper<DTO>{} 

這個類可以根據什麼映射需要你可能需要成長。

在如何設計和解決與繼承有關的問題方面,沒有辦法讓人發瘋,你可以從一個抽象類或可能使用接口開始。因爲,編程既是科學又是藝術,用你的想象力和技巧。