Как создать DTO в asp.net?


1) я хочу знать, каков рекомендуемый способ создать и вернуть DTO для объекта, который имеет 10 атрибутов, и я хочу вернуть только 2 с моим объектом DTO.

2) должны ли DTO иметь свое собственное пространство имен ? Если да, то как мы их организуем ? Каждый DTO внутри одного файла класса или все DTO внутри одного класса ?

Пожалуйста, предоставьте мне пример кода.

2 4

2 ответа:

DTO - это немые объекты, состоящие из публичных геттеров / сеттеров. Обычно я помещаю их в отдельное пространство имен SomeProject.ДТО.

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; }
}

Вы можете значительно уменьшить количество повторяющегося кода отображения при переводе объектов предметной области в DTOs с помощью автомата Джимми Богарда.

Http://automapper.codeplex.com/

Ваш вопрос очень открытый. Ответы зависят от масштаба вашего приложения.

В общем случае я создаю свои DTO или ViewModels в их собственной сборке. Чтобы получить мои DTO, у меня есть некоторый уровень сервиса, который заботится о создании их на основе моего запроса.

Если вам нужны конкретные примеры, взгляните на некоторые из них. Asp.NET примеры MVC на asp.net. хотя вы можете не использовать MVC, вы можете по крайней мере увидеть, как создаются ViewModels.