首页 > 其他 > 详细

WCF 之 DataContract

时间:2015-03-06 15:35:22      阅读:263      评论:0      收藏:0      [点我收藏+]

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

     [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,这样就保证了数据不丢失:

技术分享

 

WCF 之 DataContract

原文:http://www.cnblogs.com/yipeng-yu/p/4318109.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!