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 }