System.SerializableAttribute

串行化是指存储和获取磁盘文件、内存或其他地方中的对象。在串行化时,所有的实例数据都保存到存储介质上,在取消串行化时,对象会被还原,且不能与其原实例区别开来。

只需给类添加Serializable属性,就可以实现串行化实例的成员。

并行化是串行化的逆过程,数据从存储介质中读取出来,并赋给类的实例变量。

例:

 

 1C#学习笔记(二十三):串行化和并行化    [Serializable]
 2C#学习笔记(二十三):串行化和并行化    public class Person
 3    }

    下面来看一个小例子,首先要添加命名空间

using System.Runtime.Serialization.Formatters.Binary;

下面的代码将对象Person进行序列化并存储到一个文件中

   

 

 1C#学习笔记(二十三):串行化和并行化            Person me = new Person();
 2C#学习笔记(二十三):串行化和并行化
 3C#学习笔记(二十三):串行化和并行化            me.Age = 34;
 4C#学习笔记(二十三):串行化和并行化            me.WeightInPounds = 200;
 5C#学习笔记(二十三):串行化和并行化
 6C#学习笔记(二十三):串行化和并行化            Stream s = File.Open("Me.dat",FileMode.Create);
 7C#学习笔记(二十三):串行化和并行化
 8C#学习笔记(二十三):串行化和并行化            BinaryFormatter bf = new BinaryFormatter();
 9C#学习笔记(二十三):串行化和并行化
10C#学习笔记(二十三):串行化和并行化            bf.Serialize(s,me);
11C#学习笔记(二十三):串行化和并行化
12C#学习笔记(二十三):串行化和并行化            s.Close();

    然后再举一个并行化的例子   

C#学习笔记(二十三):串行化和并行化            Stream s = File.Open("Me.dat",FileMode.Open);
C#学习笔记(二十三):串行化和并行化
C#学习笔记(二十三):串行化和并行化            BinaryFormatter bf 
= new BinaryFormatter();
C#学习笔记(二十三):串行化和并行化
C#学习笔记(二十三):串行化和并行化            
object o = bf.Deserialize(s);
C#学习笔记(二十三):串行化和并行化
C#学习笔记(二十三):串行化和并行化            Person p 
= o as Person;
C#学习笔记(二十三):串行化和并行化            
if(p != null)
C#学习笔记(二十三):串行化和并行化                Console.WriteLine(
"DeSerialized Person aged:{0} whight:{1}",p.Age,p.WeightInPounds);
C#学习笔记(二十三):串行化和并行化
C#学习笔记(二十三):串行化和并行化            s.Close();

    如果需要对部分字段序列化部分不序列化时,我们可以按照如下设置实现

 

C#学习笔记(二十三):串行化和并行化    [Serializable]
C#学习笔记(二十三):串行化和并行化    
public class Person
    }

相关文章: