Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)delv
published in(发表于) 2014/1/6 9:12:42
序列化和反序列化XML应用程序设置类_[Asp.Net教程]

序列化和反序列化XML应用程序设置类_[Asp.Net教程]

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







If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759