Лучшая практика для Сервиса и контрактов данных - WCF

Я понимаю, что могу применить несколько опций к ServiceContract (как Name, Namespace) атрибут и для OperationContract (Action, ReplyAction)

То же переходит в DataContract (Namespace) и DataMember (IsRequired, Name, Order)

Как я определяю, должен ли я применить конкретную опцию или нет. Какова лучшая практика / конвенция, за которой я должен следовать?

6
задан DotnetDude 2 March 2010 в 22:41
поделиться

2 ответа

Здесь нет ни одной "лучшей практики". Просто поймите, для чего используются все разные аргументы.

  • Имя должно быть указано, если вы хотите, чтобы «общедоступное» имя вашей службы отличалось от фактического имени класса (большинство людей не меняют это). Это похоже на контракты данных - используйте его, если вы хотите, чтобы имя, отображаемое через SOAP / MEX, отличалось от имени свойства, которое вы используете внутри.

  • Пространство имен - это то, что вы должны изменить, иначе по умолчанию используется tempuri.org - вы должны заменить это пространство имен, имеющее отношение к вашему приложению.

  • IsRequired следует указать, если тип допускает значение NULL (т. Е.a string ), но поле фактически требуется как часть контракта (например, у клиента должно быть имя ... которое является обязательным полем).

  • Order просто изменяет порядок, в котором свойства появляются в метаданных / XML; обычно большинство людей не беспокоится об этом, если это не требуется по соображениям совместимости.

8
ответ дан 16 December 2019 в 21:38
поделиться

Здесь нет требований или стандартов.

Атрибуты предоставляют варианты, увеличивая вероятность того, что статическая спецификация, предоставленная MS, подойдет для ваших нужд.

Поэтому я бы сказал, что лучшая практика - это понимание опций и их применения к вашим требованиям.

0
ответ дан 16 December 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: