Лучшая практика для сервисов и данных контрактов - WCF - PullRequest
6 голосов
/ 03 марта 2010

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

То же самое относится к DataContract (Namespace) и DataMember (IsRequired, Name, Order)

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

Ответы [ 2 ]

8 голосов
/ 03 марта 2010

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

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

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

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

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

0 голосов
/ 03 марта 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...