2、使用SoapFormatter进行串行化
串行化的文件是xml格式,只能串行化由基础类型组成的对象,不支持泛型,继承等关系的对象。
[Serializable()]
public class SoapSerialize
{
private int id;
public int ID
{
get { return id; }
set { id = value; }
}
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private SexType sex;
public SexType Sex
{
get { return sex; }
set { sex = value; }
}
private string[] list;
public string[] List
{
get { return list; }
set { list = value; }
}
//private List<string> listStr;
//public List<string> ListStr
//{
// get { return listStr; }
// set { listStr = value; }
//}
//private ListBuffer buffer = new ListBuffer();
//public ListBuffer Buffer
//{
// get { return buffer; }
// set { buffer = value; }
//}
}
public sealed class ConfigurationManagerSoapSerialize
{
private static string path = System.Windows.Forms.Application.StartupPath + "\\SoapSerialize.xml";
public static SoapSerialize Get()
{
if (!File.Exists(path))
return null;
SoapFormatter b = new SoapFormatter();
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
{
return (SoapSerialize)b.Deserialize(fs);
}
}
public static void Set(SoapSerialize hr)
{
SoapFormatter b = new SoapFormatter();
using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write))
{
b.Serialize(fs, hr);
}
}
}
备注:
soap序列化连泛型都不支持,所以没有进行更多的研究,能用就用,不能用就换一个方式。