Должны ли строго определенные версии пространств имен службы WCF быть уникальными для контракта? - PullRequest
4 голосов
/ 23 ноября 2010

Я указываю Name и Namespace для каждого контракта в моих службах WCF, как указано в рекомендациях Microsoft Управление версиями . Однако в их примере для каждого контракта к Namespace всегда добавляется суффикс Name, например:

[DataContract(
Name = "PurchaseOrder",
Namespace = "http://examples.microsoft.com/WCF/2005/10/PurchaseOrder")]
public class PurchaseOrderV1 : IPurchaseOrderV1
{
    [DataMember(...)]
    public string OrderId {...}
    [DataMember(...)]
    public string CustomerId {...}
}

Почему PurchaseOrder имеет суффикс Namespace? Разве это не избыточно? Разве Namespace не должен отражать весь неизменный контракт?

Если я хочу, чтобы мои DataContracts и ServiceContracts были строго версионированы, не должно ли значение Namespace быть http://examples.microsoft.com/WCF/2005/10/?

1 Ответ

4 голосов
/ 23 ноября 2010

Это естественно.

http://examples.microsoft.com/WCF/2005/10/ определяет общее значение, подобное версии продукта. Точно так же, как в вашем коде C # вы имеете более детализированные пространства имен, вы сделали бы то же самое с пространствами имен WCF.

В конце концов, пространство имен - это просто пространство имен, а такой тип именования - просто соглашение .

...