В настоящее время я работаю в сети некоторых веб-сервисов (веб-сервисы ASP.NET 3.5).
Мой бизнес-уровень одинаков для всех служб - это означает, что у меня одинаковые структуры с одинаковыми полями в каждой службе.
Но когда я передаю эти структуры между службами, каждый раз, когда мне нужно выполнить преобразование из глобального типа в локальный, например:
Если у меня есть метод, который возвращает экземпляр структуры.
[WebMethod]
public MyObject MyMethod () {
return new MyObject();
}
Когда я звоню из клиентской службы, я пишу что-то вроде этого:
OuterService proxy = new OuterService();
global::MyObject obj = proxy.MyMethod();
Где OuterService - это экземпляр класса, сгенерированный wsdl.exe.
А затем, чтобы передать его следующему сервису, мне нужно преобразовать его из глобального типа в локальное поле типа по полю, а свойство по свойству.
Итак, мой вопрос:
Есть ли какое-нибудь элегантное решение для передачи этих объектов без трансформации на каждом уровне?
Я думал о создании универсального бизнес-уровня для всех веб-сервисов (который, например, может быть также объявлен как веб-сервис), но для этого мне нужно изменить слишком много вещей, и я думаю, что для этого должно быть более простое решение, предоставлено фреймворком.