Контракт WCF ограничивает строковые значения - PullRequest
0 голосов
/ 16 мая 2011

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

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

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

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

1 Ответ

4 голосов
/ 16 мая 2011

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

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

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

...