严格版本控制的WCF服务名称空间是否应该是合同唯一的?

严格版本控制的WCF服务名称空间是否应该是合同唯一的?,wcf,web-services,versioning,Wcf,Web Services,Versioning,我正在为我的WCF服务中的每个合同指定一个名称和一个名称空间,如Microsoft指南中所述。然而,在每个契约的示例中,名称空间总是以名称值作为后缀,如下所示: [DataContract( Name = "PurchaseOrder", Namespace = "http://examples.microsoft.com/WCF/2005/10/PurchaseOrder")] public class PurchaseOrderV1 : IPurchaseOrderV1 { [Dat

我正在为我的WCF服务中的每个合同指定一个
名称
和一个
名称空间
,如Microsoft指南中所述。然而,在每个契约的示例中,
名称空间
总是以
名称
值作为后缀,如下所示:

[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
名称空间上有后缀?这不是多余的吗?
名称空间
不应该反映整个不可变契约吗

如果我希望将我的
DataContracts
ServiceContracts
严格地一起进行版本控制,那么
名称空间
值不应该是http://examples.microsoft.com/WCF/2005/10/

这是很自然的

定义通用产品版本,如值。与在C#代码中使用更细粒度的名称空间相同,您也可以使用WCF名称空间

归根结底,名称空间只是一个名称空间,而这种命名只是一种约定