1)我想知道什麼是建議&返回一個DTO的對象有10個屬性,我只想返回2與我的DTO對象。如何在asp.net中創建DTO?
2)DTO應該有自己的命名空間嗎?如果是,我們如何組織它們?單個類文件中的每個DTO或單個類中的所有DTO?
請提供一些示例代碼。
1)我想知道什麼是建議&返回一個DTO的對象有10個屬性,我只想返回2與我的DTO對象。如何在asp.net中創建DTO?
2)DTO應該有自己的命名空間嗎?如果是,我們如何組織它們?單個類文件中的每個DTO或單個類中的所有DTO?
請提供一些示例代碼。
DTO是由公共getter/setters組成的啞對象。我通常把它們放在一個名爲SomeProject.Dto的獨立名稱空間中。
public class CustomerDto {
public int Id { get; set; }
public string Name { get; set; }
public LocationDto HomeAddress { get; set; }
}
我通常會盡量保持DTO和相應的域類之間的屬性名稱相同,可能有一些扁平化。例如,我的客戶可能有一個地址的對象,但我的DTO可能是夷爲平地:
public class CustomerDto {
public int Id { get; set; }
public string Name { get; set; }
public string HomeStreet { get; set; }
public string HomeCity { get; set; }
public string HomeProvince { get; set; }
public string HomeCountry { get; set; }
public string HomePostalCode { get; set; }
}
您可以通過使用吉米博加德的AutoMapper大幅減少的翻譯域對象進入的DTO的重映射代碼量。
你的問題是非常開放的。答案取決於您的應用程序的規模。
一般來說,我在自己的程序集中創建自己的DTO或ViewModels。爲了獲得我的DTO,我有一些服務層負責根據我的要求創建它們。
如果你想具體的例子看看在asp.net的一些Asp.NET MVC示例。雖然你可能沒有使用MVC,但至少可以看到ViewModel是如何創建的。
謝謝布朗曼。我的應用規模並不大。然而,在創建一個DTO的時候,我甚至會爲基本的DTO創建分離類文件(只返回1個屬性)。我想知道的是如何有效地減少類文件和管理我的DTO。我將看看MVC。 – 2010-12-02 05:02:42
asp.net上的Asp.NET MVC示例的任何特定鏈接? – atiyar 2011-05-02 13:00:01