using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.IO;
using System.Runtime.Serialization.Formatters;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization.Formatters.Soap;
using System.Xml.Serialization;
namespace SerialiazationDemo
{
[Serializable]
public class SumOf
{
public SumOf()
{ }
public DecimalList Members = new DecimalList();
public decimal Sum, Avg;
public void Calculate()
{
this.Sum = 0;
foreach (decimal m in Members)
{
Sum += m;
}
this.Avg = Sum / Members.Count;
}
}
[Serializable]
public class DecimalList : List<decimal>
{
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public SumOf sObj;
private void button1_Click(object sender, EventArgs e)
{
sObj = this.BuildSumObj();
this.toolStipStatusLabl1.Text = string.Format("数量:{0},合计:{1},平均值:{2}",sObj.Members.Count,sObj.Sum,sObj.Avg);
}
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)
{
FileStream fileStream = new FileStream("DoSum.bin",FileMode.Create);
BinaryFormatter binaryFormatter = new BinaryFormatter();
binaryFormatter.Serialize(fileStream, sObj);
fileStream.Close();
}
private void button3_Click(object sender, EventArgs e)
{
FileStream fileStream = new FileStream("DoSum_Soap.xml", FileMode.Create);
SoapFormatter SoapFormatter = new SoapFormatter();
SoapFormatter.Serialize(fileStream, sObj);
fileStream.Close();
}
private void button4_Click(object sender, EventArgs e)
{
FileStream fileStream = new FileStream("DoSum_xml.xml", FileMode.Create);
System.Xml.Serialization.XmlSerializer xmlFormatter = new XmlSerializer(typeof(SumOf));
xmlFormatter.Serialize(fileStream, sObj);
fileStream.Close();
}
}
}