知识宝典之介绍WCF数据契约

开发 后端
WCF数据契约则是定义服务端和客户端之间要传送的自定义数据类型,文章还有一个关于解决客户端程序不会被排除的代码分析。

经过长时间学习WCF,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西。在WCF服务编程中我们知道,WCF数据契约定义了远程访问对象和可供调用的服务操作方法,WCF数据契约则是定义服务端和客户端之间要传送的自定义数据类型。在 WCF项目中,声明一个类型DataContract,那么该类型就可以被序列化在服务端和客户端之间传送。

#T#类只有声明为DataContract,该类型的对象才可以被传送,且只有类的属性会被传送,需要在属性生命前加DataMember声明,这样该属性就可以被序列化传送。默认情况属性是不可传递的。类的方法不会被传送。WCF数据契约的类型可以进行更加细节的控制,可以把一个成员属性排除在序列化范围以外,客户端程序不会获得被排除在外的成员属性的任何信息,包括定义和数据。代码如下:

  1. [DataContract]//数据契约属性声明  
  2. class MyDataContract  
  3. {  
  4. [DataMember(Name = "MyName")]//数据成员标记,支持别名定义  
  5. public string Name  
  6. {  
  7. get;  
  8. set;  
  9. }  
  10. [DataMember(Name = "MyEmail")]//数据成员标记,支持别名定义  
  11. public string Email  
  12. {  
  13. get;  
  14. set;  
  15. }  
  16. [DataMember]//数据成员标记  
  17. public string Mobile  
  18. {  
  19. get;  
  20. set;  
  21. }  
  22. //没有[DataMember]声明,不会被序列化  
  23. public string Address  
  24. {  
  25. get;  
  26. set;  
  27. }  
  28. }  

上面类声明为DataContract,部分属性声明为DataMember(数据成员)。可以序列化为客户端传送。 Address成员属性没有被声明为DataMember,因此在交换数据时,不会传输Address的任何信息。声明为DataMember的成员也可以自定义客户端可见的别名 如:

  1. [DataMember(Name = "MyName")]//数据成员标记,支持别名定义。 
责任编辑:田树 来源: 博客
相关推荐

2009-11-04 15:11:42

ADO.NET连接模式

2009-11-17 16:24:27

PHP变量串行化

2010-02-23 13:46:37

WCF数据契约

2009-11-20 10:43:04

思科无线AP

2009-11-04 09:25:35

ADO.NET _Co

2009-10-26 15:44:52

2009-11-09 14:15:17

WCF集合类型

2009-12-02 15:44:36

2009-11-09 09:23:10

WCF数据契约

2010-02-22 15:27:05

WCF数据契约

2009-11-20 11:06:35

路由器NAT配置

2010-09-02 14:27:37

UPS常见故障选型

2010-02-22 13:56:35

WCF服务契约

2010-02-24 16:58:14

WCF Session

2009-11-06 09:39:40

WCF契约

2010-02-23 17:44:22

WCF数据契约

2010-03-01 18:11:40

WCF数据契约变更

2010-02-23 13:54:43

WCF非定制数据契约集

2010-02-22 17:07:50

WCF绑定元素

2009-11-05 09:51:14

WCF基础
点赞
收藏

51CTO技术栈公众号