• WCF 之 DataContract


    在客户端与服务端之间传递的自定义数据类型,格式如下:

         [DataContract]
            public class User :IExtensibleDataObject
            {
                [DataMember]
                public int ID { get; set; }
                  [DataMember]
                  public string Name { get; set; }
            //这里没有[DataMember],则说明不被传递
    public string Sex { get; set; }
            //而这里无论有没有[DataMember],都会被传递
    public ExtensionDataObject ExtensionData { get; set; }   }

    对于实现接口 IExtensibleDataObject,目的是为了保证数据不丢失。但如果客户端和服务端之间传递的DTO,能够保证版本一致,则该接口可以不实现。

     实现 IExtensibleDataObject 的好处如下:

    服务端返回最新版本 User :

                    public User GetName()
                    {
                          return new User { 
                          
                                  ID=1,
                                  Name="apple",
                                  Sex="M"
                          };
                    }

    而这时客户端的版本不是最新的,没有ID:

    当客户端请求时:

     private static void Main(string[] args)
                {
                      UserInfoClient client = new UserInfoClient();
    
                      var user = client.GetName(); // 这时的 user 是没有ID的,因为没有更新服务,导致版本不一致
    
                      Console.ReadKey();
                }

    这时接口的 ExtensionData 就起作用了,它包含了ID,这样就保证了数据不丢失:

  • 相关阅读:
    看盘技巧及要点
    棉花价格持续走高带来阶段性投资机会
    2009430远光软件,美锦能源
    c#获取汉字首字母拼音
    Linq分组查询统计
    json序列化
    jquery 实现飘落效果
    python学习开始
    DOS命令大全 DOS常用代码全在这里
    Python包含以下方法:
  • 原文地址:https://www.cnblogs.com/yipeng-yu/p/4318109.html
Copyright © 2020-2023  润新知