Контракт WCF ограничивает строковые значения

Мы определяем некоторые контракты WCF для проекта.

В одном случае мы хотим отправить через поле состояния. Мы просто отправили это в виде текста.

  • Можем ли мы указать в контракте WCF, что разрешены только эти x строковые значения?
  • Было бы лучше использовать перечисления?

Мы будем взаимодействовать с веб-сервисами Java.

1 ответ

Решение

Нет, вы не можете, но вы можете использовать перечисления, которые затем превращаются в схему, эквивалентную ограниченному списку строк. Это также полезно для не-WCF-клиентов, потому что они могут легко увидеть, каков диапазон допустимых строковых значений.

К сожалению, перечисления приходят с некоторым неудачным багажом в WCF, когда дело доходит до версии. В частности, вы не можете просто добавить новое перечисление и не сломать существующие клиенты WCF. Поэтому добавление нового перечисления считается серьезным изменением.

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

Другие вопросы по тегам