Обеспечение лучшего WSDL из C # SOAP - PullRequest
0 голосов
/ 19 декабря 2009

Я собираю некоторые сервисы в C #, которые должны соответствовать определенному формату данных; например длины строк, различные перечисления и форматирование. У меня есть резервный подход для проверки после публикации вызова SOAP и ответа дружественными сообщениями и заранее определенными кодами ошибок, но я хотел бы поместить дополнительную информацию в WDSL (поэтому ясно, что поле x может содержать только 15 буквенных символов например, без цифр и знаков препинания).

Возможно ли это, если да, есть ли примеры и / или учебные пособия?

Ответы [ 2 ]

1 голос
/ 19 декабря 2009

Прежде всего, вы должны знать, что .NET не проверяет сообщения SOAP по схеме в WSDL. Например, если часть вашего входного сообщения показывает максимальную длину 50, при отправке 51 не будет ошибок или исключений.

Во-вторых, невозможно настроить ваши классы таким образом, чтобы вы могли контролировать точную схему. Например, вы не можете вызвать атрибут maxLength в WSDL.

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

Наконец, вы уже говорили о веб-сервисах ASMX здесь. Вы не должны использовать веб-сервисы ASMX для новых разработок - они были заменены на WCF.

1 голос
/ 19 декабря 2009

Возьмите сообщение SOAP, сгенерируйте из него XSD, а затем редактируйте XSD до тех пор, пока все ваши вещи для проверки не будут там. Предоставьте XSD вместе с WSDL вашему клиенту.

Когда вы оба проверяете сообщения, используя один и тот же XSD, проблема должна исчезнуть.

...