При разработке своего сервиса я решил, что хочу настроить пространства имен, которые появляются в результирующем 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, этот атрибут повлияет на все сборщики данных в масштабе всей сборки.