c# – 客户端中的IExtensibleDataObject用法

栏目: 服务器 · 发布时间: 7年前

内容简介:翻译自:https://stackoverflow.com/questions/3434045/iextensibledataobject-usage-in-clients

我已将我的Web服务转换为具有一些数据交换的wcf服务.作为最佳实践,我们提到并建议DataContracts应继承自IExtensibleDataObject.我明白,在添加或删除数据库的情况下,IExtensibleDataObject很有帮助.但我无法得到客户端如何访问删除的数据库.这是我的代码:

[ServiceContract(Namespace = "http://mycompany.com/2010/08/")]
public class MyWebService {
    [OperationContract]
    public Employee Add(Employee emp)
    {
        // Some Processing
    }
}

[DataContract(Name = "Employee", Namespace = "http://mycompany.com/2010/08/")]
public class Employee : IExtensibleDataObject {
    [DataMember] public string FirstName;
    [DataMember] public string LastName;

    public ExtensionDataObject ExtensionData  { get; set; }
}

现在,在我的下一个Web服务版本中,我对DataContract进行了一些更改

[DataContract(Name = "Employee", Namespace = "http://mycompany.com/2010/09/")]
public class Employee : IExtensibleDataObject {
    [DataMember] public string FirstName;
    [DataMember] public string LastName;
    [DataMember(IsRequired = true)] public string MiddleName;

    public ExtensionDataObject ExtensionData  { get; set; }
}

但是,正在访问我的旧版Web服务的客户端现在因未提供MiddleName字段而收到错误.我仍然对IExtensionDataObject的使用感到困惑.

我担心这不是IExtensibleDataObject的正确用法,IExtensibleDataObject接口旨在支持版本往返,请阅读这篇关于向前兼容性的MSDN文章:

http://msdn.microsoft.com/en-us/library/ms731083.aspx

这是另一篇关于数据合同版本控制最佳实践的文章:

http://msdn.microsoft.com/en-us/library/ms733832.aspx

翻译自:https://stackoverflow.com/questions/3434045/iextensibledataobject-usage-in-clients


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

交互设计

交互设计

. / 刘晓晖、张景 / 电子工业出版社 / 2003-6 / 39.00元

一起来看看 《交互设计》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具