经过长时间学习WCF,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西。在WCF服务编程中我们知道,WCF数据契约定义了远程访问对象和可供调用的服务操作方法,WCF数据契约则是定义服务端和客户端之间要传送的自定义数据类型。在 WCF项目中,声明一个类型DataContract,那么该类型就可以被序列化在服务端和客户端之间传送。
#T#类只有声明为DataContract,该类型的对象才可以被传送,且只有类的属性会被传送,需要在属性生命前加DataMember声明,这样该属性就可以被序列化传送。默认情况属性是不可传递的。类的方法不会被传送。WCF数据契约的类型可以进行更加细节的控制,可以把一个成员属性排除在序列化范围以外,客户端程序不会获得被排除在外的成员属性的任何信息,包括定义和数据。代码如下:
- [DataContract]//数据契约属性声明
- class MyDataContract
- {
- [DataMember(Name = "MyName")]//数据成员标记,支持别名定义
- public string Name
- {
- get;
- set;
- }
- [DataMember(Name = "MyEmail")]//数据成员标记,支持别名定义
- public string Email
- {
- get;
- set;
- }
- [DataMember]//数据成员标记
- public string Mobile
- {
- get;
- set;
- }
- //没有[DataMember]声明,不会被序列化
- public string Address
- {
- get;
- set;
- }
- }
- }
上面类声明为DataContract,部分属性声明为DataMember(数据成员)。可以序列化为客户端传送。 Address成员属性没有被声明为DataMember,因此在交换数据时,不会传输Address的任何信息。声明为DataMember的成员也可以自定义客户端可见的别名 如:
- [DataMember(Name = "MyName")]//数据成员标记,支持别名定义。
网站栏目:知识宝典之介绍WCF数据契约
文章出自:http://www.shufengxianlan.com/qtweb/news12/318812.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联