c#的序列化究竟有什么用?

请大家看网上的这段话:序列化和反序列化最主要的作用有:“把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中”上面是网友对c#序列化作用的解释,我怎么看不出来序列化有... 请大家看网上的这段话:
序列化和反序列化最主要的作用有:“把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中 ”

上面是网友对c#序列化作用的解释,我怎么看不出来序列化有什么用呢?我自己的编写一个小程序,用c#的文件操作类也可以保存对象的数据啊,还要序列化做什么?
我的问题是:既然用c#的文件操作类也可以保存对象的数据,还要序列化做什么?另外,通过其他办法也可以实现网络间通信和进程间通信,那为什么非要序列化呢?序列化和传统的手段相比究竟有什么好处?
奥术引擎说“数据需要序列化以后才能在服务端和客户端之间传输”,这是不对的,难道别的方法就不能传输了吗?
展开
 我来答
奥术引擎
推荐于2017-11-24 · TA获得超过414个赞
知道答主
回答量:72
采纳率:0%
帮助的人:86.8万
展开全部
序列化是用来通信的,服务端把数据序列化,发送到客户端,客户端把接收到的数据反序列化后对数据进行操作,完成后再序列化发送到服务端,服务端再反序列化数据后对数据进行操作。说白了,数据需要序列化以后才能在服务端和客户端之间传输。这个服务端和客户端的概念是广义的,可以在网络上,也可以在同一台机器的不同进程中,甚至在同一个进程中进行通信。在传统编程中,对象是通过调用栈间接的与客户端交互,但在面向服务的编程中,客户端永远都不会直接调用实例。不知道说的明不明白。

好吧,我说的确实不够明白,你问的是为什么需要序列化,我只是说了序列化的一个应用。那我就来说说序列化的好处吧。不序列化也可以传输,但是无法跨平台,安全性也无法保障。我说的是面向服务编程中的作用,在传统编程中,你在表示层实例化一个业务对象,然后调用业务对象中的方法,你想过为什么能这样调用吗?这样做耦合度太高,很不好。如果序列化以后通过特定的协议传输数据就不一样了,表示层通过代理或通道向服务层发送特定的数据格式,这个数据就是序列化以后的,比如XML,服务端接收到以后要进行反序列化,生成服务端可识别的数据格式,比如一个类,然后对数据进行操作,再序列化发送到客户端,客户端再反序列化。这样客户端可以使用和服务端完全不同的开发平台,只要它能够对xml数据进行反序列化,而xml是具有工业标准的数据格式,基本各平台都支持。这也适用于在进程间通信。如果在进程内通信,也可以做到更高的安全性,对象不再通过调用栈交互,而是通过代理或通道。
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
binghe875
2011-08-25 · TA获得超过126个赞
知道答主
回答量:85
采纳率:0%
帮助的人:57.8万
展开全部
序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。

.NET Framework 提供两种序列化技术:

二进制序列化保持类型保真度,这对于在应用程序的不同调用之间保留对象的状态很有用。例如,通过将对象序列化到剪贴板,可在不同的应用程序之间共享对象。您可以将对象序列化到流、磁盘、内存和网络等等。远程处理使用序列化“通过值”在计算机或应用程序域之间传递对象。

XML 序列化仅序列化公共属性和字段,且不保持类型保真度。当您要提供或使用数据而不限制使用该数据的应用程序时,这一点是很有用的。由于 XML 是一个开放式标准,因此,对于通过 Web 共享数据而言,这是一个很好的选择。SOAP 同样是一个开放式标准,这使它也成为一个颇具吸引力的选择。

通俗的说法就是序列化就是把类改成2进制溜文件方便存储和传输数据
追问
答非所问
追答
你是不明白好不  序列化就是把类文件转成溜文件进行保存用的

参考资料: http://msdn.microsoft.com/zh-cn/library/7ay27kt9(VS.80).aspx

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冷水江服务
2011-08-25 · TA获得超过113个赞
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:130万
展开全部
虽然C#文件操作类可以保存数据,但有时需要与其它平台或其它语言进行交互通信,比如说两个不同语言开发的系统进行数据交换等,这时候序列化成xml或json等通用的格式,可以解决这些问题。

/*
然用c#的文件操作类也可以保存对象的数据,还要序列化做什么?另外,通过其他办法也可以实现网络间通信和进程间通信,那为什么非要序列化呢?序列化和传统的手段相比究竟有什么好处?
*/
一个是.net开发的平台,一个是java开发的平台,要将数据传递过去就要把它转换成一种公认的格式如xml,json。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赵氏陶艺
2012-03-06
知道答主
回答量:7
采纳率:0%
帮助的人:1.2万
展开全部
一句话: 序列化将对象保存为磁盘文件,反序列化将磁盘文件重新组合成一个对象,我觉得这是精髓所在。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sadxiaozhou
2020-12-30 · TA获得超过315个赞
知道小有建树答主
回答量:140
采纳率:66%
帮助的人:55.8万
展开全部
  1. 存储

  2. 传输

  3. 高效转换

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式