好吧,这里什么都没有。在阅读了关于服务版本控制和数据合同版本控制的最佳实践 ( http://msdn.microsoft.com/en-us/library/ms733832.aspx ) 之后,我基本了解它是如何完成的。我计划对数据合同使用敏捷版本控制,但无法弄清楚创建 WorkRequestV2 以添加新属性或仅将新属性添加到 WorkRequestV1 之间有什么区别或更好的做法。现在我尝试了两种方法并且它有效但是当我创建 WorkRequestV2 时我必须修改 ServiceContractor 以使用 WorkRequestV2 为什么要这样做而不是仅仅向 WorkRequestV1 添加属性?有什么不同?
我查看的示例在这里 ( http://msdn.microsoft.com/en-us/library/ms731138.aspx ) CarV1 和 CarV2 为什么不将 HorsePower 添加到 CarV1 而不必创建一个全新的合同。
[DataContract(Name = "WorkRequest")]
public class WorkRequestV1 : IExtensibleDataObject {
[DataMember(Name = "workrequest",Order=1,IsRequired=true)]
public int workrequest { get; set; }
[DataMember(Name = "CQ")]
public string CrewHeadquarter { get; set; }
[DataMember(Name = "JobCode")]
public string JobCode { get; set; }
[DataMember(Name = "JobType")]
public string JobType { get; set; }
[DataMember(Name = "Latitude")]
public string Latitude { get; set; }
[DataMember(Name = "Longitute")]
public string Longitute { get; set; }
private ExtensionDataObject theData;
public ExtensionDataObject ExtensionData {
get {
return theData;
}
set {
theData = value;
}
}
}