Я все еще новичок в мире ASP.NET, так что я мог бы быть далеко от базы здесь, но пока это, насколько мне известно (ограничено)!
Допустим, у меня есть стандартный бизнес-объект "Контакт" в пространстве имен Business . Я пишу веб-сервис, чтобы получить информацию о контакте из базы данных и вернуть ее. Затем я пишу клиентское приложение для запроса указанных деталей.
Теперь я также создаю служебный метод, который принимает «Контакт» и делает с ним магию, как, например, Utils.BuyContactNewHat()
. Который, конечно, принимает контакт типа Business.Contact
.
Затем я возвращаюсь к своему клиентскому приложению и хочу использовать метод BuyContactNewHat
, поэтому я добавляю ссылку на свое пространство имен Utils , и вот оно. Однако проблема возникает с:
Contact c = MyWebService.GetContact("Rob);
Utils.BuyContactNewHat(c); // << Error Here
Поскольку тип возвращаемого значения GetContact
имеет значение MyWebService.Contact
, а не Business.Contact
, как ожидалось. Я понимаю, почему это происходит, потому что при доступе к веб-службе вы фактически программируете с использованием прокси-класса, сгенерированного WSDL.
Итак, есть ли "более простой" способ справиться с этим несоответствием? Возможно, я подумывал о том, чтобы попытаться создать общий класс преобразователя, который использует отражение, чтобы гарантировать, что два объекта имеют одинаковую структуру, а не просто передавать значения из одного в другой.