序列化与编码

时间:2014-03-22 05:54:09

标签: c# wcf serialization

序列化和编码之间有什么不同。

据我了解

"序列化定义了.NET对象如何映射到XML,而Encoding定义了如何将XML写入字节流。 "

这是正确的吗?

2 个答案:

答案 0 :(得分:3)

是。用于在客户端和服务器之间传输消息的序列化我们需要将CLR类型转换为基于标准的XML。

WCF将序列化定义为将对象图转换为XML信息集(XML Infoset)的过程

1. The XML Infoset is the data model WCF uses internally to represent a message.
2. The XML Infoset is the data model for representing an XML document.

编码用于描述将WCF消息转换为字节数组的过程。这样做是为了可以通过传输协议发送消息。

以下是示例http://msdn.microsoft.com/en-us/magazine/cc163569.aspx#S1

的详细解释

答案 1 :(得分:3)

Serialization是将内存中.NET对象转换为另一种格式,例如XMLJSON等,以便可以存储或传输它们。这种格式通常是文本,即一串字符。

Encoding是将这些字符转换为字节流,以通过线路传输它们或将它们存储到磁盘。一些常见的编码是ASCIIUTF-8等。

来自维基百科,

Serialization:序列化是将数据结构对象状态转换为可以存储的格式(例如,在文件或内存中)的过程缓冲区,或通过网络连接链路传输),稍后在相同或另一个计算机环境中重建。

Character Encoding:字符编码系统由一个代码组成,该代码将给定指令表中的每个字符与其他内容配对 - 例如位模式 ..通过电信网络或数据存储促进数据传输(通常是数字或文本)。