严格版本的WCF服务命名空间应该是合同的唯一吗?

时间:2010-11-23 20:57:12

标签: wcf web-services versioning

我正在为我的WCF服务中的每个合同指定NameNamespace,如Microsoft Service Versioning指南中所述。但是,在每个合同的示例中,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 {...}
}

为什么Namespace上会加上 PurchaseOrder ?这不是多余的吗? Namespace不应该反映整个不变的合同吗?

如果我希望将DataContractsServiceContracts严格版本化,则Namespace值不应 http://examples.microsoft.com/WCF/ 2005/10 /

1 个答案:

答案 0 :(得分:4)

这很自然。

http://examples.microsoft.com/WCF/2005/10/定义了一般产品版本的值。与在C#代码中具有更细粒度的命名空间的方式相同,您也可以对WCF命名空间执行相同的操作。

在一天结束时,命名空间只是一个命名空间,这种命名只是一个约定