关于XML序列化的简单例子
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//the struct to serializer
[Serializable]
public struct mydata
{
public string myname;
public string mybirthday;
public int age;
public byte[] imageByte;
}
//选择保存路径
private void button1_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "XML文件|*.xml";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
textBox1.Text = saveFileDialog1.FileName;
}
//将数据结构序列化到bat或其他格式文件中
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
return;
mydata newdata = new mydata();
newdata.myname = "龙域";
newdata.mybirthday = "09-31";
newdata.age = 23;
newdata.imageByte = Encoding.Default.GetBytes("999adfklasdjfl".ToCharArray());
IFormatter formatter = new BinaryFormatter();
FileStream fs = new FileStream(textBox1.Text, FileMode.OpenOrCreate);
formatter.Serialize(fs, newdata);
fs.Close();
}
//反序列化二进制文件
private void button3_Click(object sender, EventArgs e)
{
IFormatter formter = new BinaryFormatter();
FileStream fs = new FileStream(textBox1.Text, FileMode.Open);
mydata mm = (mydata)formter.Deserialize(fs);
MessageBox.Show("mm.Name=" + mm.myname + "\r\n" +
"mm.bothday=" + mm.mybirthday + "\r\n" +
"mm.age=" + mm.age + "\r\n" +
"mm.imageByte=" + Encoding.Default.GetString(mm.imageByte));
fs.Close();
}
}
}
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//the struct to serializer
[Serializable]
public struct mydata
{
public string myname;
public string mybirthday;
public int age;
public byte[] imageByte;
}
//选择保存路径
private void button1_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "XML文件|*.xml";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
textBox1.Text = saveFileDialog1.FileName;
}
//将数据结构序列化到bat或其他格式文件中
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
return;
mydata newdata = new mydata();
newdata.myname = "龙域";
newdata.mybirthday = "09-31";
newdata.age = 23;
newdata.imageByte = Encoding.Default.GetBytes("999adfklasdjfl".ToCharArray());
IFormatter formatter = new BinaryFormatter();
FileStream fs = new FileStream(textBox1.Text, FileMode.OpenOrCreate);
formatter.Serialize(fs, newdata);
fs.Close();
}
//反序列化二进制文件
private void button3_Click(object sender, EventArgs e)
{
IFormatter formter = new BinaryFormatter();
FileStream fs = new FileStream(textBox1.Text, FileMode.Open);
mydata mm = (mydata)formter.Deserialize(fs);
MessageBox.Show("mm.Name=" + mm.myname + "\r\n" +
"mm.bothday=" + mm.mybirthday + "\r\n" +
"mm.age=" + mm.age + "\r\n" +
"mm.imageByte=" + Encoding.Default.GetString(mm.imageByte));
fs.Close();
}
}
}