Я все еще новичок в мире 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.
Итак, есть ли "более простой" способ справиться с этим несоответствием? Возможно, я подумывал о том, чтобы попытаться создать универсальный класс преобразователя, который использует отражение, чтобы два объекта имели одинаковую структуру, а не просто передавали значения из одного в другой.