Я уже много лет гуглю, но не могу найти ответ на проблему, с которой сталкиваюсь.Вот ситуация:
У меня есть веб-сервис .Net (не сервис wcf, а старомодный веб-сервис), в котором есть веб-метод, возвращающий, скажем, объект типа X.
Теперь, когда я создаю ссылку на сервис для этого веб-сервиса из другого проекта .Net, Visual Studio сгенерирует прокси-класс (в reference.vb), и тип возвращаемого веб-метода в этом классе таков:прокси-класс (скажем, тип Y) вместо типа X.
Дело в том, что тип X - это тип, который объявлен во внешней ссылке, которая существует в обоих концах веб-метода.Есть ли ЛЮБОЙ способ (сама служба должна оставаться веб-службой, но мне все равно, является ли ссылка «ссылкой на службу» или «веб-ссылкой»), я могу заставить Visual Studio понять, что нет необходимости создаватьпрокси-класс, и он может использовать существующий тип для возвращаемого типа метода?
Я знаю, что ссылки на службы могут автоматически отображать типы (вы можете установить эти параметры при создании ссылки на службу).Однако кажется, что это работает только при создании ссылки на службу для службы wcf, а не на обычную веб-службу .net
Обновление:
Кажется, мне нужно каким-то образом заставить Visual Studio соответствоватьпространства имен типов.Джон Сондерс намекнул мне на атрибут xmltype, который я могу использовать для указания полного пространства имен типа.Я попробую, если это сработает.
Я также думал о том, как Visual Studio соответствует классам.Похоже, что в wsdl веб-службы нет информации о пространствах имен (предполагается, что студия использует wsdl в качестве входных данных для генерации ссылки), так как студия может сопоставлять типы?
Update2: я пыталсяиспользуйте xmltype для сопоставления пространства имен.Я не был уверен, какое пространство имен использовать (тип URI реального ClrNamespace), поэтому я попробовал оба.Используя пространство имен uri, я смог создать отображение пространства имен в svcmap, но это привело к тому, что код в файле reference.vb был сгенерирован внутри дополнительного пространства имен вместо того, чтобы VS захотел отобразить тип.Любая новая идея?Неужели это так сложно?