序列化和反序列化xml应用程式配置类 _c#应用

2008-02-23 05:45:15来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

1 public class ApplicationSettings
2 {
3
4 private bool appSettingsChanged;
5 // 用于存储应用程式配置的变量。
6
7 private Point formLocation;
8
9 public Point FormLocation
10 {
11 get { return formLocation; }
12 set
13 {
14 if (value != formLocation)
15 {
16 formLocation = value;
17 appSettingsChanged = true;
18 }
19 }
20 }
21
22
23 // 从配置文档中反序列化类。
24 public bool LoadAppSettings()
25 {
26 XmlSerializer mySerializer = null;
27 FileStream myFileStream = null;
28 bool fileExists = false;
29
30 try
31 {
32 // 为 ApplicationSettings 类型创建 XmlSerializer。
33 mySerializer = new XmlSerializer(typeof(ApplicationSettings));
34 FileInfo fi = new FileInfo(Application.LocalUserAppDataPath
35 @"\myApplication.config");
36 // 假如配置文档存在,将其打开。
37 if (fi.Exists)
38 {
39 myFileStream = fi.OpenRead();
40 // 反序列化配置文档以创建新的
41 // ApplicationSettings 实例。
42 ApplicationSettings myAppSettings =
43 (ApplicationSettings)mySerializer.Deserialize(
44 myFileStream);
45 // 为 ApplicationSettings 类的这一实例
46 // 分配属性值。
47 this.formLocation = myAppSettings.FormLocation;
48 fileExists = true;
49 }
50 }
51 catch (Exception ex)
52 {
53 MessageBox.Show(ex.Message);
54 }
55 finally
56 {
57 // 假如 FileStream 是打开的,将其关闭。
58 if (myFileStream != null)
59 {
60 myFileStream.Close();
61 }
62 }
63
64
65 return fileExists;
66 }
67
68 // 假如配置发生变化,则将
69 // 类序列化到配置文档中。
70 public bool SaveAppSettings()
71 {
72 if (this.appSettingsChanged)
73 {
74 StreamWriter myWriter = null;
75 XmlSerializer mySerializer = null;
76 try
77 {
78 // 为 ApplicationSettings 类型
79 // 创建 XmlSerializer。
80 mySerializer = new XmlSerializer(
81 typeof(ApplicationSettings));
82 myWriter =
83 new StreamWriter(Application.LocalUserAppDataPath
84 @"\myApplication.config", false);
85 // 将 ApplicationSettings 类的这一实例
86 // 序列化到配置文档中。
87 mySerializer.Serialize(myWriter, this);
88 }
89 catch (Exception ex)
90 {
91 MessageBox.Show(ex.Message);
92 }
93 finally
94 {
95 // 假如 FileStream 是打开的,将其关闭。
96 if (myWriter != null)
97 {
98 myWriter.Close();
99 }
100 }
101 }
102 return appSettingsChanged;
103 }
104 }

出处:ting BLOG


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: c#摄氏华氏转换_c#应用

下一篇: c#实现google样式的分页_c#应用