如何在asp.net中创建DTO?

时间:2010-12-02 04:49:15

标签: c# asp.net asp.net-2.0 dto

1)我想知道创建&的推荐方法是什么?为具有10个属性的对象返回DTO,我只想用我的DTO对象返回2。

2)DTO应该拥有自己的命名空间吗?如果是,我们如何组织它们?单个类文件中的每个DTO或单个类中的所有DTO?

请提供一些示例代码。

2 个答案:

答案 0 :(得分:11)

DTO是由公共getter / setter组成的愚蠢对象。我通常将它们放在一个名为SomeProject.Dto的单独命名空间中。

public class CustomerDto {
    public int Id { get; set; }
    public string Name { get; set; }
    public LocationDto HomeAddress { get; set; }
}

我通常会尝试在DTO和相应的域类之间保持属性名称相同,可能会有一些展平。例如,我的客户可能有一个Address对象,但我的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; }
}

使用Jimmy Bogard的AutoMapper,您可以大大减少将域对象翻译成DTO的重复映射代码量。

http://automapper.codeplex.com/

答案 1 :(得分:1)

你的问题非常开放。答案取决于您的申请规模。

通常我会在自己的程序集中创建DTO或ViewModel。为了得到我的DTO,我有一些服务层负责根据我的要求创建它们。

如果你想要具体的例子,请看一下asp.net上的一些Asp.NET MVC示例。虽然您可能没有使用MVC,但至少可以看到ViewModel是如何创建的。