研究序列化与反序列化的课题.
来源:互联网 发布:淘宝禁售品 编辑:程序博客网 时间:2024/04/29 20:12
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
using System.IO;
namespace 序列化
{
/// <summary>
/// 研究序列化与反序列化的课题.
/// 利用配置文件对一个类进行初始化
/// </summary>
class Program
{
static void Main(string[] args)
{
#region 序列化
///序列化类.
///1.创建该类.
///2.使用XmlSerializer对像.把要序列化的对像,在构造的时候传入.
///3.使用StreamWriter对像把内容写到指定的配置文件里面.(构造的时候把XML文件地址写上)
///4.最重要的,调用StreamWriter对象的Serialize方法,执行写入.
///5.不要忘了关闭
///
myclass cla = new myclass();
///构造可用于序列的XML对象
XmlSerializer xml = new XmlSerializer(typeof(myclass));//注意这里的参数
StreamWriter Swrite = new StreamWriter("c:/news.xml");//构造一个写流的对象/
xml.Serialize(Swrite, cla);
Swrite.Close();
myclass cl = new myclass();
// 将对象序列化到 XML 文档中和从 XML 文档中反序列化对象。System.Xml.Serialization.XmlSerializer 使您得以控制如何将对象编码到
XmlSerializer myxml = new XmlSerializer(typeof(myclass));
//建立可写入的流
// 实现一个 System.IO.TextWriter,使其以一种特定的编码向流中写入字符。
//StreamWriter Write = new StreamWriter("c:/sxx.xml");
//myxml.Serialize(Write, cl);
//Write.Close();
MySerializableClass myObject1 = new MySerializableClass();
XmlSerializer mySerializer1 = new
XmlSerializer(typeof(MySerializableClass));
StreamWriter myWriter = new StreamWriter("c:/mName.xml");
mySerializer1.Serialize(myWriter, myObject1);
myWriter.Close();
#endregion
#region 反序列化
myclass myfan;
XmlSerializer xmlFan = new XmlSerializer(typeof(myclass));
//这个跟之前一样.构造序列化的对象
//打开一个流
FileStream StreamFan = new FileStream("c:/sxx.xml", FileMode.Open);
myfan = (myclass)xmlFan.Deserialize(StreamFan);//反序列
Console.WriteLine(myfan.Name);
//============================================================
MySerializableClass myObject;
XmlSerializer mySerializer =
new XmlSerializer(typeof(MySerializableClass));
FileStream myFileStream =
new FileStream("c:/myFileName.xml", FileMode.Open);
myObject = (MySerializableClass)
mySerializer.Deserialize(myFileStream);
Console.WriteLine(myObject.Dbconnectstring);
Console.Read();
#endregion
}
}
[Serializable]
public class myclass
{
private string _name = "唐2龙";
public string Name
{
get { return _name; }
set { _name = value; }
}
private int _age = 18;
public int Age
{
get { return _age; }
set { _age = value; }
}
private DateTime _dt;
public DateTime Dt
{
get { return _dt; }
set { _dt = value; }
}
public void run()
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization.Formatters.Soap;
using System.Xml.Serialization;
namespace SerializationDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SumOf sObj;
private void button1_Click(object sender, EventArgs e)
{
// create a file stream to write the file
FileStream fileStream = new FileStream("DoSum.bin", FileMode.Create);
// use the CLR binary formatter
BinaryFormatter binaryFormatter = new BinaryFormatter();
// serialize to disk
binaryFormatter.Serialize(fileStream, sObj);
fileStream.Close();
}
private SumOf BuildSumObj()
{
SumOf sObj = new SumOf();
for (int i = 0; i < this.numericUpDown1.Value; i++)
{
sObj.Members.Add(i);
}
sObj.Calculate();
return sObj;
}
private void button2_Click(object sender, EventArgs e)
{
// create a file stream to write the file
FileStream fileStream = new FileStream("DoSum_Soap.xml", FileMode.Create);
// use the CLR binary formatter
SoapFormatter formatter = new SoapFormatter();
// serialize to disk
formatter.Serialize(fileStream, sObj);
fileStream.Close();
}
private void button3_Click(object sender, EventArgs e)
{
sObj = this.BuildSumObj();
this.toolStripStatusLabel1.Text =
string.Format("数量:{0},合计:{1},平均值:{2}", sObj.Members.Count, sObj.Sum, sObj.Avg);
}
private void button4_Click(object sender, EventArgs e)
{
// create a file stream to write the file
FileStream fileStream = new FileStream("DoSum.xml", FileMode.Create);
// use the CLR binary formatter
System.Xml.Serialization.XmlSerializer
formatter = new XmlSerializer(typeof(SumOf));
// serialize to disk
formatter.Serialize(fileStream, sObj);
fileStream.Close();
}
}
}
- 研究序列化与反序列化的课题.
- 序列化与反序列
- 序列化与反序列
- POJO与JSON的序列化与反序列化
- Unity与C#的序列化与反序列化
- PHP的序列化与反序列化的使用
- XML序列化与反序列化
- 对象序列化与反序列化
- 序列化与反序列化
- 转载:序列化与反序列化
- c#序列化与反序列化
- java序列化与反序列化
- XML序列化与反序列化
- 序列化与反序列化
- 序列化与反序列化
- C#序列化与反序列化
- java序列化与反序列化
- XML序列化与反序列化
- C#异步调用飞信WebService实时接收短信
- firefox 中文 URL
- 晕死了,文章中出现禁止的词语,系统不予接受。
- 512
- quota磁盘限额实验
- 研究序列化与反序列化的课题.
- Lex和Yacc应用方法(一).初识Lex
- DisplayTag应用指南
- Lex和Yacc应用方法(二).再识Lex与Yacc
- [Watir]Control the popup windows created using javascript
- 以后的路如何走
- Yacc 与 Lex 快速入门
- CSS 获取浏览器尺寸
- CC功击