快速掌握WCF序列化

开发 后端
这里简单的分析了WCF序列化内置的两种方式;DataContractSerializer和NetDataContractSerializer,文章有详细的代码分析,希望对大家有帮助。

近期看了大量关于WCF的资料,深入的了解了关于WCF的原理机制,我们都知道,WCF内置了两种序列化方式,DataContractSerializer和NetDataContractSerializer。现在就和大家简单的分析介绍一下WCF序列化方面的知识吧。

先来看看WCF序列化的声明:

  1. public sealed class DataContractSerializer : XmlObjectSerializer  
  2. {  
  3. public DataContractSerializer(Type type);  
  4.    …  
  5. public override object ReadObject(XmlReader reader);  
  6.  
  7. public object ReadObject(Stream stream);  
  8.  
  9. public void WriteObject(Stream stream, object graph);  
  10.  
  11. public override void WriteObject(XmlWriter writer, object graph);  
  12. …   
  13. }   
  14. public sealed class NetDataContractSerializer : XmlObjectSerializer, IFormatter  
  15. {  
  16. public NetDataContractSerializer();  
  17. …  
  18. public object Deserialize(Stream stream);  
  19. public void Serialize(Stream stream, object graph);  
  20.  
  21. public override object ReadObject(XmlReader reader);  
  22. public object ReadObject(Stream stream);  
  23. public void WriteObject(Stream stream, object graph);  
  24. public override void WriteObject(XmlWriter writer, object graph);  
  25. …  
  26. }  

#T#其中两者的ReadObject(Straem)、WriteObject(Stream, object)的实现继承自基类XmlObjectSerializer,其他方法均为已覆写或实现。从两个类型的声明中可以看出NetDataContractSerializer实现了IFormatter接口,而 DataContractSerializer没有,因此只有NetDataContractSerializer能使用.NET基础结构中的序列化,而 DataContractSerializer则是专用于WCF的。还有一个细节DataContractSerializer的Constructor有一个Type类型的参数,而NetDataContractSerializer没有。这可蕴藏着深意啊,读者接着看就明白了。

责任编辑:田树 来源: 博客
相关推荐

2009-11-05 16:34:37

WCF序列化

2010-02-23 13:03:34

WCF序列化

2009-12-22 14:31:27

WCF序列化依赖属性

2010-02-22 16:00:22

WCF序列化

2009-12-21 16:52:02

WCF序列化

2010-02-24 17:07:26

WCF序列化引擎

2009-11-05 14:25:36

WCF Data Co

2022-08-06 08:41:18

序列化反序列化Hessian

2011-06-01 15:05:02

序列化反序列化

2009-08-24 17:14:08

C#序列化

2018-03-19 10:20:23

Java序列化反序列化

2011-05-18 15:20:13

XML

2009-08-06 11:16:25

C#序列化和反序列化

2023-12-13 13:49:52

Python序列化模块

2010-02-24 17:41:05

WCF集合反序列化

2023-10-13 08:28:21

.NET平台序列化库

2013-03-11 13:55:03

JavaJSON

2011-06-01 14:26:11

序列化

2019-11-20 10:07:23

web安全PHP序列化反序列化

2009-06-14 22:01:27

Java对象序列化反序列化
点赞
收藏

51CTO技术栈公众号