Идентичные типы в отдельных веб-сервисах

Очень простым примером было бы проверить, содержит ли строка три двойные кавычки ("" ") и сохранить его в списке.

5
задан Community 23 May 2017 в 11:44
поделиться

3 ответа

Сначала - они - точно то же? В частности, пространства имен SOAP должны соответствовать (в дополнение ко всему остальному). Если они не делают, то они - различные (несовместимые) типы; необходимо будет использовать 2 различных ссылки (в различных пространствах имен C# для предотвращения конфликтов), и данные сдвига между двумя типами.

Если типы являются тем же, и оно все еще не работает, то можно, возможно, использовать переключатель/r с svcutil для потребления типов от существующего блока. Попытайтесь использовать его, после того как для получения первых типов (только от 1 из URL) - затем компилируют тот код в блок. Используйте svcutil против второй конечной точки с флагом/r, определяющим блок, который Вы генерировали несколько моментов назад.

Примечание; связанная тема состоит в том, чтобы записать a partial class для одного или нескольких типов - например, для обеспечения методов/операторов преобразования на самих типах. Это могло бы сделать вещи более простыми. Например, Вы могли записать неявное (или явный) статический оператор преобразования между двумя подобными типами в различных пространствах имен.

5
ответ дан 14 December 2019 в 19:28
поделиться

Так как это существует в обоих сервисах затем, Вы заканчиваете с двумя объявлениями после выполнения svcutil против обоих сервисов. Я не думаю, что svcutil.exe достаточно умен, чтобы понять, что тот же тип существует в обоих веб-сервисах.

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

0
ответ дан 14 December 2019 в 19:28
поделиться

ОТВЕТ РАСШИРЯЕТСЯ С ПОМОЩЬЮ ПРОТЕСТОВ (и контекст): И не забывайте, svcutil.exe является просто инструментом. Можно изменить или расширить сгенерированный код - нет никакого запрета на него. Хотя, конечно, существуют оборотные стороны к настройке сгенерированного кода, и необходимо сделать это только широко открытыми глазами.

В более ранние дни, при установке неоднородным клиентам и серверам вместе через веб-сервисы, я регулярно обращался к изменению сгенерированного WSDL, изменяя код, сгенерированный от WSDL (я записал многочисленные sed сценарии для свопинга пространств имен при соединении ОСИ и.NET), и другие подобранные на заказ подходы. Некоторые веб-сервисы, которые были вокруг самого длинного все еще, требуют этого. Одним примером является Сервис Исследования MS Office, который не поставляет WSDL вообще...

Другой подход, который может или не может работать, должен расширить сгенерированный код.NET через частичные классы. Это - отличный способ скорректировать пространства имен XML, добавить дополнительные элементы (как строка версии?), и делают другие тонкие настройки. И когда Вы повторно создаете код, Ваши расширения не будут перезаписаны.

Править: При оценке downvote некоторые люди думают, что это слишком опасно!!! Я понимаю полностью.

0
ответ дан 14 December 2019 в 19:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: