2009-12-19 2 views
0

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

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

ответ

1

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

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

1

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

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

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

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

Смежные вопросы