веб-сервис ссылки махинации - PullRequest
1 голос
/ 04 марта 2011

У меня есть .net webservice (сквозной WS), который проходит через другой (базовый WS), передавая определенный пользовательский объект. оба WS включают сборку с определенным классом пользовательских объектов, но когда я добавляю ссылку службы на базовый WS в проходной WS, .net генерирует свой собственный тип этого класса в пространстве имен WS passthough. тогда это означает, что я должен использовать этот другой объект в другом пространстве имен вместо того, в котором он на самом деле дублирует «настоящий» класс / объект. может быть, я не очень хорошо объясняю это.

Я мог бы догадаться, что нужно вручную войти в сгенерированный класс обслуживания .net и заменить сгенерированный объект на «правильный», но мне придется делать это каждый раз, когда базовый сервис обновляется. немного боли по меньшей мере. это явно также влияет на типы возвращаемых данных, а также на аргументы, с которыми веб-методы вызываются .. dagnamit!

есть ли способ обойти это? в идеале я хотел бы, чтобы оба WS использовали одни и те же объекты. или мне придется добавить конструкторы к сгенерированным объектам, которые берут базовые и просто назначить все свойства, как это? - надеюсь, нет ....

Я понимаю, что WS должны быть независимыми от платформы, используя типы, которые должны быть доступны не только из .net или что-то еще .. так есть ли идея убедиться, что вы используете только эти базовые типы и вместо того, чтобы обернуть их все в пользовательский объект, передать все эти «свойства» как отдельные аргументы? любая помощь высоко ценится

спасибо

нац

1 Ответ

2 голосов
/ 04 марта 2011

Если вы используете устаревшие веб-сервисы ASP.NET (он же старая школа), у вас есть в основном 2 варианта:

  1. Преобразуйте их в службы WCF и используйте Сервисные ссылки (вместо простых Ссылки ) для их использования. Службы WCF поддерживают повторное использование классов .

  2. Если вы хотите использовать устаревшую технологию веб-служб, вам придется пройти трудный путь, настроив способ создания прокси-класса .

...