Настройка пространства имен WCF DataContract с использованием атрибута ContractNamespace - PullRequest
4 голосов
/ 04 августа 2010

При разработке своего сервиса я решил, что хочу настроить пространства имен, которые появляются в результирующем WSDL.

Для DataContracts я натолкнулся на атрибут ContractNamespace , который казался хорошей альтернативой для быстрой установки одного и того же пространства имен для каждого DataContract. Моя первоначальная попытка выглядела так:

[assembly:ContractNamespace("http://types.mycompany.com/2010/08/03")]
namespace MyCompany.MyContracts
{
    [DataContract]
    //...multiple datacontract classes here
}

К моему удивлению, это не сработало. После долгих попыток я добился успеха, только когда наконец установил свойство ClrNamespace атрибута равным моему пространству имен CLR (MyCompany.MyContracts в примере). Так что-то вроде этого

[assembly:ContractNamespace("http://types.mycompany.com/2010/08/03",
          ClrNamespace="MyCompany.MyContracts")]

Мой вопрос: почему это не сработало в первую очередь? Я ожидал, что, не указав пространство имен CLR, этот атрибут повлияет на все сборщики данных в масштабе всей сборки.

1 Ответ

4 голосов
/ 04 августа 2010

Если я не ошибаюсь, если ClrNamespace опущено, то параметр пространства имен контракта применяется к объектам в глобальном пространстве имен.

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