Контракт WCF ограничивает строковые значения
Мы определяем некоторые контракты WCF для проекта.
В одном случае мы хотим отправить через поле состояния. Мы просто отправили это в виде текста.
- Можем ли мы указать в контракте WCF, что разрешены только эти x строковые значения?
- Было бы лучше использовать перечисления?
Мы будем взаимодействовать с веб-сервисами Java.
1 ответ
Нет, вы не можете, но вы можете использовать перечисления, которые затем превращаются в схему, эквивалентную ограниченному списку строк. Это также полезно для не-WCF-клиентов, потому что они могут легко увидеть, каков диапазон допустимых строковых значений.
К сожалению, перечисления приходят с некоторым неудачным багажом в WCF, когда дело доходит до версии. В частности, вы не можете просто добавить новое перечисление и не сломать существующие клиенты WCF. Поэтому добавление нового перечисления считается серьезным изменением.
Вам нужно будет взвесить эти два варианта и решить, какой из них лучше для вас. Если вы выберете "чистую" строку, то вам нужно будет проверить значения самостоятельно. Это можно сделать в общем, написав IParameterInspector
который вы можете подключить ко всем вашим услугам, которые могут использовать контракт данных, который вы заинтересованы в ограничении.