你的位置:首页 > 软件开发 > ASP.net > 第六讲:数据契约

第六讲:数据契约

发布时间:2016-05-13 21:00:08
代码https://yunpan.cn/cPns5DkGnRGNs 密码:3913 再将数据契约之前,我们想说一下 序列化 大部分的系统都是以数据为中心的,功能的实现表现在对相关数据的正确处理方面。一个分布式的互联网系统关注于数据的交换,而数据正常交换的根本 ...

代码

https://yunpan.cn/cPns5DkGnRGNs   密码:3913


 

再将数据契约之前,我们想说一下  序列化

 

大部分的系统都是以数据为中心的,功能的实现表现在对相关数据的正确处理方面。一个分布式的互联网系统关注于数据的交换,而数据正常交换的根本前提是参与数据交换的双方对于数据的结构一致性理解,这就为数据的表现提出了要求,为了保证处于不同平台,不同厂商的应用能够正常进行数据交换,交换的数据必须采用一种大家都能够理解的展现方式。在这种方面,所以WCF下的序列化解决的就是如何将数据从对象的变现形式转变成WCF 的序列化和反序列化解决的是托管对象与

 

 

 

数据契约

一个正常的服务调用要求客户端和服务端对服务操作有一致的理解,WCF通过服务契约对服务操作进行抽象,以一种与平台无关的,能够被不同的厂商理解的方式对服务进行描述。同理,客户端和服务端进行有效的数据交换,同样要求交换双方对交换数据的结构达成共识。WCF通过数据契约来对交换的数据进行描述。与数据契约的定义相匹配,WCF采用新的序列化器---数据契约序列化器(DataContractSerializer)进行基于数据契约的序列化与反序列化.数据契约是描述数据的结构,数据交换只有在双方对数据结构具有相同的理解下才能正常进行。对于数据的接受方来讲,当它接收到数据时,只有借助于数据结构的描述,才能理解数据的每个元素所承载的信息。由于数据交换通过

 

数据契约的定义

同服务契约类似,WCF采用了基于特性的数据契约定义方式。基于数据契约的自定义特性主要包含以下两个DataContractAttribute和DataMemberAttribute。

1.DataContractAttribute:将目标类型定义成一个数据契约

2.DataMemberAttribute:将字段或属性变成数据契约的数据成员

 

 

接下来 我们做个关于 数据契约的 小Demo,  网盘 自己找

 

首先我们看下 项目的结构

[ 6-01 ]

第六讲:数据契约

 

ContentTypes:数据契约层

GigEntry:客户端

GigManager:服务契约层  ( 这里 把服务契约的 实现 也写到了 这里。当然 也可以把它分开 )

Hosting:服务器寄宿

 

 

 

在看下我们的 服务契约:

 

[ 6-02 ]

第六讲:数据契约

 

 

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.ServiceModel; 6 using ContentTypes; 7  8 namespace GigManager 9 {10 11   [ServiceContract(Name = "GigManagerServiceContract", Namespace = "http://www.HulkXu.com/")]12   public interface IGigManagerService13   {14     //注意 如果不实用数据契约,无法传入复杂的对象,就如下面的 SaveGig 方法的 参数 是一个 ListItem 类型的参数15     [OperationContract]16     void SaveGig(ListItem item);17     [OperationContract]18     ListItem GetGig();19   }20 21   /// <summary>22   /// 这里为实现了 IGigManagerService 这个服务契约23   /// </summary>24   public class GigManagerService : IGigManagerService25   {26     private ListItem m_listItem;27     /// <summary>28     /// 将我们得到的 对象传给  m_listItem29     /// </summary>30     /// <param name="item"></param>31     public void SaveGig(ListItem item)32     {33       m_listItem = item;34     }35 36     /// <summary>37     /// 获取我们上面的 得到的 m_listItem 38     /// </summary>39     /// <returns></returns>40     public ListItem GetGig()41     {42       return m_listItem;43     }44   }45 }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:第六讲:数据契约

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录