| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1246 人关注过本帖
标题:求教:有关 序列化 问题
取消只看楼主 加入收藏
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
以下是引用jiangkunhgnc在2012-5-14 22:54:57的发言:

需要序列化的对象,在该类与父类,以及成员对应的类与父类的前面加上[Serializeable]特性,二进制序列化只会序列化对应的字段,如果某些字段不需要序列化,在字段前加上即可
我的问题是:
如何选择哪些对象需要(或应该)序列化,哪些不需要序列化呢?

2012-05-15 12:35
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
以下是引用jiangkunhgnc在2012-5-15 14:16:45的发言:

可以理解为将内存中的对象直接放到硬盘中或进行通讯,常用的手段是:
    将一个对象直接保存到硬盘,比如记录窗体关闭时的位置大小等,以便下次开启时和关闭时一样,QQ就是这样
    或者将对象作为数据进行网络传输,例如ftp的文件处理
    再就是处理比较复杂的数据,运行时需要比较麻烦的解析,可以将解析的结果进行序列化,每次开启时直接加载
序列化的使用比较多
十分感谢 jiangkunhgnc 老师!!!

再请教您,序列化(可以理解为将内存中的对象直接放到硬盘中) 与 save 的区别是什么呢?

save 也是将东东直接放到硬盘中呀?
2012-05-15 17:57
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
以下是引用jiangkunhgnc在2012-5-16 00:31:08的发言:

我不太明白你说的Save是指什么,如果是一般使用类似word等应用程序的保存功能的话,可以理解这样. 但是不仅如此.  
 
我们常用的软件有文本文件和飞文本文件,基本上能用记事本打开的都称为文本文件. 而非文本文件,比如doc格式的文件,你用记事本打开,会发现是乱码. 此时理解为序列化也是可以的.  
 
我们常说的保存,如果是使用File.WriteAllText等这类方法,那么就是保存文本文件.  
 
    比如有一个Person对象,那么需要将数据解析出来,拼接成字符串,写到文件中,这样可以直接打开.  
    在使用应用程序打开时,需要读取文件,然后在解析得到内存中的对象
 
这类保存没有考虑我们常说的序列化
 
如果是不需要使用记事本打开,并且考虑性能(保存读取解析需要花时间的),可以直接进行序列化保存.  
 
    那么序列化的数据使用记事本打开,会发现时乱码,但是程序保存不需要解析,直接将对象保存到硬盘中,比较快
    要使用的时候,反序列化,读取文件也不用考虑解析等,因此比较快.  
    由于是反序列化,因此与序列化之前,数据是一致的
十分感激 jiangkunhgnc 老师的指导!!!

你是我这个问题给我的最详细具体的指导解释的老师,太谢谢您了。

再请教您:
C# 或 .NET 中有 save()方法,对吗? 这个方法 就是将数据 或 文件 储存到硬盘里,对吗?
如果是,那么save()方法 与 序列化 的区别是什么,或者说最终达到的目的是一样的吗?
2012-05-16 12:30
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
以下是引用jiangkunhgnc在2012-5-16 19:57:04的发言:

没有Save方法,C#是一个面向对象的语言,其方法应该是某个类提供的
感谢jiangkunhgnc 老师的帮助指教。

关于save (),搜到:

更多
按主题搜索:
.NET Compact Framework
 MSDN 搜索   包含英文的结果  
搜索关闭大约 609 项符合 save () 的查询结果,以下是 1-20 项 Graphics.Save 方法 (System.Drawing) - MSDN – Explore Windows, Web, Cloud, and Windows Phone ...  
Save 方法返回一个标识该信息块的 GraphicsState。 当将标识的 GraphicsState 传递给 Restore 方法时,信息块被从堆栈中移除并且用于将 Graphics 还原到它在 Save 方法调用时所处的状态。
msdn.  文档和文章  包括示例代码  
 


--------------------------------------------------------------------------------

FormEvents.Save 事件 (Microsoft.Office.InfoPath)  
在从用户界面中使用“保存”或“另存为”命令时发生,或者在使用 Save 和 String) 方法时发生。
msdn.  文档和文章  


--------------------------------------------------------------------------------

Image.Save 方法 (String, ImageFormat) (System.Drawing)  
将此 Image 以指定格式保存到指定文件。 ... 下面的代码示例演示如何从类型构造位图以及如何使用 Save 方法。 若要运行此示例,请将这段代码粘贴到一个 Windows 窗体中。
msdn.  文档和文章  包括示例代码  
 


--------------------------------------------------------------------------------

XDocument.Save 方法 (System.Xml.Linq) - MSDN – Explore Windows, Web, Cloud, and Windows ...  
Save(Stream) 将此 XDocument 输出到指定的 Stream。 Save(String) 序列化此 XDocument 到文件,如果该文件存在,则覆盖现有的文件。 Save(TextWriter) 将此 XDocument 序列化为 TextWriter。
msdn.  文档和文章  


--------------------------------------------------------------------------------

SAVE TRANSACTION (Transact-SQL) - MSDN – Explore Windows, Web, Cloud, and Windows Phone ...  
在事务中允许有重复的保存点名称,但指定保存点名称的 ROLLBACK TRANSACTION 语句只将事务回滚到使用该名称的最近的 SAVE TRANSACTION。 在使用 BEGIN DISTRIBUTED TRANSACTION 显式启动或从本地事务升级的 ...
msdn.  文档和文章  


--------------------------------------------------------------------------------

Configuration.Save 方法 (System.Configuration)  
Save(ConfigurationSaveMode) 将包含在此 Configuration 对象中的配置设置写入到当前的 XML 配置文件中。 Save(ConfigurationSaveMode, Boolean) 将包含在此 Configuration 对象中的配置设置写入到当前的 XML 配置文件中。
msdn.  文档和文章  


--------------------------------------------------------------------------------

CImage::Save (ATL/MFC) - MSDN – Explore Windows, Web, Cloud, and Windows Phone Software ...  
Saves an image as the specified file name and type. ... HRESULT Save( IStream* pStream, REFGUID guidFileType ) const throw(); HRESULT Save( LPCTSTR pszFileName, REFGUID guidFileType= GUID_NULL ) const throw();
msdn.(v=VS.80).aspx


..........

所以我想了解 序列化 与 save () 的区别 或 达到的结果的区别?
2012-05-16 20:17
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
以下是引用jiangkunhgnc在2012-5-16 22:39:59的发言:

复习面向对象!!!
 
你的问题好比矿泉水与月球生的水有什么区别,没有关系的东西
 
你所搜到的方法均是谁的?先看清楚,你先用用在考虑区别与关系
谢谢jiangkunhgnc 老师回复!

是.NET的save ()方法吧。

还有哪位老师大侠帮助我?
2012-05-18 15:15
快速回复:求教:有关 序列化 问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023416 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved