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序列化连泛型都不支持,所以没有进行更多的研究,能用就用,不能用就换一个方式。