XML的命名空间为:using System.Xml.Serialization;
SOAP的命名空间为:using System.Runtime.Serialization.Formatters.Soap;(必须添加 System.Runtime.Serialization.Formatters.Soap的引用)
,二进制的命名空间:using System.Runtime.Serialization.Formatters.Binary;
今天我们就一起来学习系列化的具体方法.
首先看一段代码:
//
create a file stream to write the file
FileStream fileStream = new FileStream( @" C:/DoSum.xml " , FileMode.Create);
sObj = this .BuildSumObj();
// use the CLR binary formatter
System.Xml.Serialization.XmlSerializer
formatter = new XmlSerializer( typeof (SumOf));
// serialize to disk
formatter.Serialize(fileStream, sObj);
fileStream.Close();
首先使用FileStream创建了个xml文件(添加using System.IO;),BuildSumObj()方法是给sObj加入0-9的数.代码如下:
FileStream fileStream = new FileStream( @" C:/DoSum.xml " , FileMode.Create);
sObj = this .BuildSumObj();
// use the CLR binary formatter
System.Xml.Serialization.XmlSerializer
formatter = new XmlSerializer( typeof (SumOf));
// serialize to disk
formatter.Serialize(fileStream, sObj);
fileStream.Close();
private
SumOf BuildSumObj()
{
SumOf sObj = new SumOf();
for (int i = 0; i < 10; i++)
{
sObj.Members.Add(i);
}
sObj.Calculate();
return sObj;
}
SumOf是一个序列化的类,代码如下:
{
SumOf sObj = new SumOf();
for (int i = 0; i < 10; i++)
{
sObj.Members.Add(i);
}
sObj.Calculate();
return sObj;
}
[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 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>
{
}
}
<?
xml version
=
"
1.0
"
?>
< SumOf xmlns:xsi = " http://www.w3.org/2001/XMLSchema-instance " xmlns:xsd = " http://www.w3.org/2001/XMLSchema " >
< Members >
< decimal > 0 </ decimal >
< decimal > 1 </ decimal >
< decimal > 2 </ decimal >
< decimal > 3 </ decimal >
< decimal > 4 </ decimal >
< decimal > 5 </ decimal >
< decimal > 6 </ decimal >
< decimal > 7 </ decimal >
< decimal > 8 </ decimal >
< decimal > 9 </ decimal >
</ Members >
< Sum > 45 </ Sum >
< Avg > 4.5 </ Avg >
</ SumOf >
< SumOf xmlns:xsi = " http://www.w3.org/2001/XMLSchema-instance " xmlns:xsd = " http://www.w3.org/2001/XMLSchema " >
< Members >
< decimal > 0 </ decimal >
< decimal > 1 </ decimal >
< decimal > 2 </ decimal >
< decimal > 3 </ decimal >
< decimal > 4 </ decimal >
< decimal > 5 </ decimal >
< decimal > 6 </ decimal >
< decimal > 7 </ decimal >
< decimal > 8 </ decimal >
< decimal > 9 </ decimal >
</ Members >
< Sum > 45 </ Sum >
< Avg > 4.5 </ Avg >
</ SumOf >
这个只是XML,其它的都雷同,在这里就不多说了.
在此感谢MSDN邵志东老师!
完整代码下载