C#简单的三种序列化
1.使用自带的 JavaScriptSerializer 序列化
命名空间 using System.Web.Script.Serialization System.Web.Extensions
//实体类
public class Person
{
public string name { get; set; }
public int age { get; set; }
public char sex { get; set; }
public string phone { get; set; }
}
class Program
{
static void Main(string[] args)
{
Person p = new Person() { name = "王富贵", age = 22, sex = '男', phone = "13255669988" };
//序列化为json
JavaScriptSerializer jss = new JavaScriptSerializer();
string str = jss.Serialize(p);
Console.WriteLine(str);
//反序列化
Person person = jss.Deserialize<Person>(str);
Console.WriteLine(person.name);
Console.Read();
}
}
2. Xml 序列化 命名空间 using System.Xml.Serialization
class Program
{
static void Main(string[] args)
{
Person p = new Person() { name = "王富贵", age = 22, sex = '男', phone = "13255669988" };
//序列化
StreamWriter sw = new StreamWriter("pFile.xml");
XmlSerializer xml = new XmlSerializer(typeof(Person));
xml.Serialize(sw, p);
sw.Close();
//反序列化
StreamReader sr = new StreamReader("pFile.xml");
Person person = (Person)xml.Deserialize(sr);
Console.WriteLine(p.name);
}
}
3. 二进制序列化
命名空间 using System.Runtime.Serialization.Formatters.Binary
class Program
{
static void Main(string[] args)
{
Person p = new Person() { name = "王富贵", age = 22, sex = '男', phone = "13255669988" };
FileStream fs = new FileStream("pFile.bin", FileMode.Create);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, p);
fs.Dispose();
FileStream fr = new FileStream("pFile.bin", FileMode.Open);
Person person = (Person)bf.Deserialize(fr);
Console.WriteLine(person.name);
}
}