WCF Контракты и пространства имен?

Привет,

Пространство имен по умолчанию для контрактов data/servce в WCF: "http://tempuri.org/", Установив ServiceContract.Namespace а также ServiceBehavior.Namespace мы можем получить собственное пространство имен. Я, однако, получил несколько вопросов по этому поводу:

  1. Должен ли я использовать http:// пространство имен или я мог бы назвать его в том же пространстве имен CLS?
  2. Если мне нужно установить все мои контракты данных в MyApp.IO для использования пространства имен CLS, есть ли простой способ сделать это, не устанавливая их все вручную?
  3. Есть ли простой способ установить пространство имен CLS в качестве пространства имен контракта для всей службы и ее контрактов на передачу данных?

1 ответ

Решение

Вопрос 1. Пространство имен может быть любым. Люди обычно используют URI некоторой формы, но он не обязательно должен указывать на реальную веб-страницу. Часто люди используют идентификатор версии в пространстве имен, но нет никаких правил относительно того, что вы должны делать.

Вопрос 2. Смотри выше.

Вопрос 3. Вы можете установить пространство имен для всех контрактов следующим образом:

// This overrides the standard namespace mapping for all contracts 
// in Contoso.CRM. 
[assembly: ContractNamespace("http://schemas.example.com/crm",
   ClrNamespace = "Contoso.CRM")]
namespace Contoso.CRM
{
    // The namespace is overridden to become: 
    // http://schemas.example.com/crm.
    // But the name is the default "Customer".
    [DataContract]
    public class Customer
    {
        // Code not shown.
    }
}

Вы можете проверить эту статью MSDN для получения дополнительной информации

Другие вопросы по тегам