【序列化】小结,逐步完善中

网上查了资料,序列化有多种方法,这里我写上自己刚用过的一种生成XML文件的,有需要的朋友可以自己百度一下其他方法。

1.添加引用 “using System.Xml.Serialization;”;

2.用”[Serializable]“标记上要序列化的类,如下图

[Serializable]
    public class LogService
    {
        public string strName;
        public string strImage;
        public string strToolNum;

        public List<MainProperty> MainPropertyList;
    }

3.将第2步中的要序列化的类“LogService”中的变量都赋值,包括“List<ChildProperty> ChildPropertyList”;

4.在需要生成XML序列化文件的代码位置处,例如“序列化”按钮的单击事件中添加如下代码:

XmlSerializer xs = new XmlSerializer(typeof(LogService));
            Stream stream = new FileStream(保存路径(含xml文件名和后缀), FileMode.Create, FileAccess.Write, FileShare.Read);
            xs.Serialize(stream, 赋值后的“LogService”实例);
            stream.Close();

到这,序列化一个XML文件就完成了,下面是将该文件反序列化;

5.反序列化代码很简单,如下:

XmlSerializer xs = new XmlSerializer(typeof(LogService));
            Stream stream = new FileStream(文件保存路径(含xml文件名和后缀), FileMode.Open, FileAccess.Read, FileShare.Read);
            LogService logS = xs.Deserialize(stream) as LogService;

这样,序列化的文件就被读到“LogService”类的实例“logS”中了。

【序列化】小结,逐步完善中

时间: 2024-10-12 08:35:25

【序列化】小结,逐步完善中的相关文章

java对象序列化小结

百度百科上介绍序列化是这样的: 序列化 (Serialization): 将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象. 序列化使其他代码可以查看或修改那些不序列化便无法访问的对象实例数据.确切地说,代码执行序列化需要特殊的权限:即指定了 SerializationFormatter 标志的 SecurityPermission.在默认策略下,通过 Internet 下载

Mysql基础代码(不断完善中)

Mysql基础代码,不断完善中~ 1 //语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出. 2 3 4 /* [命名规则] */ 5 常量名 类常量建议全大写,单词间用下划线分隔 // MIN_WIDTH 6 变量名建议用下划线方式分隔 // $var_name 7 函数名建议用驼峰命名法 // varName 8 定界符建议全大写 // <<<DING, <<<'DING' 9 文件名建议全小写和下划线.数字 // func_n

php 基础代码大全(不断完善中)

下面是基础的PHP的代码,不断完善中~ 1 //语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出. 2 3 4 /* [命名规则] */ 5 常量名 类常量建议全大写,单词间用下划线分隔 // MIN_WIDTH 6 变量名建议用下划线方式分隔 // $var_name 7 函数名建议用驼峰命名法 // varName 8 定界符建议全大写 // <<<DING, <<<'DING' 9 文件名建议全小写和下划线.数字 // fun

为什么需要用到序列化?为什么HttpSession中对象要序列化

简单说就是为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来.虽然你可以用你自己的各种各样的方法来保存Object States,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化. 2.什么情况下需要序列化 a)当你想把的内存中的对象保存到一个文件中或者数据库中时候:b)当你想用套接字在网络上传送对象的时候:c)当你想通过RMI传输对象的时候: 3.当对一个对象实现序列化时,究竟发生了什么? 在没有序列化前,每个保存在堆(Heap)中的对象都有相应的状态(

近义词调研评估与代码实现(不断完善中…)

  1.确定要解决的问题及意义 在基于代码片段的分类过程中,由于程序员对数据变量名的选取可能具有一定的规范性,在某一特定业务处理逻辑代码中,可能多个变量名之间具有关联性或相似性(如“trade”(商品交易)类中,可能存在“business”,“transaction”,“deal”等同义词),在某些情况下,它们以不同的词语表达了相同的含义.因此,为了能够对代码片段做出更加科学的类别判断,更好地识别这些同义词,我们有必要寻找一种能够解决避免由于同义词的存在而导致误分类的方法.说白了,就是要去判断词

IOS开发,知识点小结,ios开发中常用的宏定义总结

IOS开发,从应用跳转到用浏览器打开网页: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.oatos.com/bbs/"]]; 用一个Button覆盖整个cell,添加动作 cell.accessoryType = UITableViewCellAccessoryNone; UIButton *btn = [[UIButton alloc] initWithFrame:CGRec

Stick hero 外挂软件 android 代码编写与分析(完善中)

论文写完,感觉头脑好久没被灵感刺激了,前些天室友介绍了个小游戏,我突然来了灵感可以写的简单的android 程序实现自动运行.主要的过会为三步: 1,Android 屏幕的获取.因为安全的原因,过程比较麻烦,我目前采用的是开启用户调试模式,利用adb脚本反复循环截图. 2,图像分析.这部分代码中有体现,过程比较简单. 3,模拟Click.代码中已经体,,我采用了一种最简单的方法,代码将在下面做详细分析. 先上个图,一口气跑到101分: 完善中...下面将进行代码分析.... 参考: http:/

java中的序列化与反序列化,还包括将多个对象序列化到一个文件中

package Serialize; /** * Created by hu on 2015/11/7. *///实现序列化必须实现的接口,这就是一个空接口,起到标识的作用import java.io.Serializable; /** * 用来进行序列化和反序列化的类 * */public class person implements Serializable { private int age; private String name; private String sex; public

Netty(五)序列化protobuf在netty中的使用

protobuf是google序列化的工具,主要是把数据序列化成二进制的数据来传输用的.它主要优点如下: 1.性能好,效率高: 2.跨语言(java自带的序列化,不能跨语言) protobuf参考文档:Protobuf详解 其实,在netty中使用Protobuf需要注意的是: protobufDecoder仅仅负责编码,并不支持读半包,所以在之前,一定要有读半包的处理器. 有三种方式可以选择: 使用netty提供ProtobufVarint32FrameDecoder 继承netty提供的通用