Подтвердить что ты не робот

Пространство имен контракта на поставку: почему

Бит путается с указанием пространства имен для контракта на обслуживание. Может понимать по отношению к нормальному классу,

Мое понимание пространства имен

В обычной модели ООП, скажем, класс Employee является частью пространства имен Microsoft, а также пространства имен Google. Но поскольку мы можем добавить ссылку на Google, а также сборку Microsoft в нашем проекте; поэтому для дифференциации Employee мы имеем пространство имен, поскольку, когда мы говорим

Employee emp = new Employee()... компилятор действительно не знает, к какому сотруднику мы обращаемся?

Аналогично, что касается веб-службы, как это важно? Могу ли я запросить явный пример, чтобы объяснить это дело? Например

[ServiceContract(Namespace="Company.Matching.Algo")]
4b9b3361

Ответ 1

Он использовал - как обычные пространства имен .NET - чтобы все было в порядке.

Наличие пространства имен помогает, когда у вас есть несколько служб, которые могут оказаться в результате всех похожих методов. В пространстве имен все они могут иметь метод под названием GetVersion или что-то еще, и документ WSDL будет иметь возможность разделить их на основе их пространства имен.

Кроме того, пространства имен часто используются для версий, поэтому ваша первая служба WCF может иметь пространство имен службы http://yourcompany.com/MyService/2011/08 и иметь пять методов. Если позже вы представите v2 своего сервиса, который может иметь 10 методов, и вы поместите его в отдельное пространство имен http://yourcompany.com/MyService/2011/12, вы можете сохранить эти вещи отдельно - а "старый" клиент все равно может называть "старый", (/2011/08) и использовать его метод, в то время как новые клиенты уже могут вызвать новую службу с большим количеством возможностей.

Ответ 2

От RebuildAll:

Заметка об пространствах имен: пространства имен НЕ являются URL-адресами!. Они могут выглядеть как один, как в моих примерах, но нет такого субдомена, как существующие на самом деле схемы. Пространства имен соответствуют формату URI, но не являются фактическими адресами. Они могут использоваться для идентификации схем, поскольку обычно компания владеет доменным именем. Таким образом, использование этого как пространства имен схемы создает что-то уникальное. И именно это пространство имен должно быть уникальным.

Ответ 3

Пространство имен важно для сериализации и десериализации объектов.

В вашем примере вы можете иметь тот же класс Employee на сервере и клиенте и отправлять объект Employee от одного к другому через веб-службу. Если пространство имен отличается, оно будет равно нулю, если вы выполните десериализацию с другой стороны.