读写配置文件类
1using System;
2using System.IO;
3using System.Xml;
4using System.Collections;
5using System.Windows.Forms;
6namespace SSSSystem.Class
7{
8 /**//// <summary>
9 /// ConfigSettings 的摘要说明。
10 /// </summary>
11 public class ConfigSettings
12 {
13 public ConfigSettings()
14 {
15 //
16 // TODO: 在此处添加构造函数逻辑
17 //
18 InitFilePath();
19 Read();
20 }
21
22 私有成员#region 私有成员
23 private Hashtable list = new Hashtable();
24 private string filePath="";
25 private bool autoWrite=true;
26 private string[,] _defaultValues;
27 #endregion
28
29 属性#region 属性
30 public bool AutoWrite
31 {
32 get{return autoWrite;}
33 set{autoWrite=value;}
34 }
35
36 public string FilePath
37 {
38 get
39 {
40 string folderPath=Path.GetDirectoryName(filePath);
41 if(Directory.Exists(folderPath)==false)
42 {
43 Directory.CreateDirectory(folderPath);
44 }
45 return filePath;
46 }
47 set{filePath=value;}
48 }
49 #endregion
50
51 public ConfigSettings(string[,] defaultValues)
52 {
53 _defaultValues=defaultValues;
54 InitFilePath();
55 Read();
56 }
57 public void SetValue(object key,Object _value)
58 {
59 if(! list.Contains(key.ToString()))
60 {
61 throw new Exception("配置文件中没有指定项");
62 }
63 list[key.ToString()] = _value;
64
65 if(autoWrite==true)
66 {
67 Write();
68 }
69 }
70
71 public void AddValue(object key,Object _value)
72 {
73 list.Add(key.ToString(),_value);
74
75 if(autoWrite==true)
76 {
77 Write();
78 }
79 }
80
81 public void RemoveValue(object key)
82 {
83 list.Remove(key.ToString());
84
85 if(autoWrite==true)
86 {
87 Write();
88 }
89 }
90
91
92 public string GetString(object key)
93 {
94 string keyStr = key.ToString();
95 Object result=list[keyStr];
96 if(result==null)
97 {
98 return "";
99 }
100 else
101 {
102 return result.ToString();
103 }
104 }
105
106 public int GetInt(object key)
107 {
108 Object result=GetString(key);
109 if(result==null)
110 {
111 return 0;
112 }
113 else
114 {
115 return int.Parse( result.ToString());
116 }
117
118 }
119 public bool GetBool(object key)
120 {
121 Object result=GetString(key);
122 if(result==null)
123 {
124 return false;
125 }
126 else
127 {
128 return Convert.ToBoolean(result);
129 }
130 }
131 /**//// <summary>
132 /// read settings file
133 /// </summary>
134 public void Read()
135 {
136 list.Clear();
137 for(int i=0;i<_defaultValues.GetLength(0);i++)
138 {
139 list[_defaultValues[i,0]]=_defaultValues[i,1];
140 }
141 if (File.Exists(this.FilePath))
142 {
143 XmlTextReader reader=new XmlTextReader(this.FilePath);
144 while(reader.Read())
145 {
146 if(reader.NodeType==XmlNodeType.Element && reader.Name=="add")
147 {
148 list[reader.GetAttribute("key")]=reader.GetAttribute("value");
149 }
150 }
151 reader.Close();
152 }
153 }
154 /**//// <summary>
155 /// write settings to the .config file
156 /// </summary>
157 public void Write()
158 {
159 XmlTextWriter xmlWriter=new XmlTextWriter(this.FilePath,null);
160
161 xmlWriter.Formatting=Formatting.Indented;
162 xmlWriter.WriteStartElement("configuration");
163 xmlWriter.WriteStartElement("appSettings");
164
165 IDictionaryEnumerator enumerator=list.GetEnumerator();
166 while(enumerator.MoveNext())
167 {
168 xmlWriter.WriteStartElement("add");
169 xmlWriter.WriteStartAttribute("key",null);
170 xmlWriter.WriteString(enumerator.Key.ToString());
171 xmlWriter.WriteEndAttribute();
172
173
174 xmlWriter.WriteStartAttribute("value",null);
175 xmlWriter.WriteString(enumerator.Value.ToString());
176 xmlWriter.WriteEndAttribute();
177
178 xmlWriter.WriteEndElement();
179
180 }
181 xmlWriter.WriteEndElement();
182 xmlWriter.WriteEndElement();
183 xmlWriter.Flush();
184 xmlWriter.Close();
185
186 }
187
188
189
190 public void RestoreDefaults()
191 {
192 try
193 {
194 File.Delete(FilePath);
195 Read();
196 }
197 catch(Exception ex)
198 {
199 System.Diagnostics.Debug.Fail("删除默认配置文件时出错",ex.Message);
200 }
201 }
202
203
204 public void InitFilePath()
205 {
206 this.FilePath= Application.ExecutablePath + ".config";
207
208 }
209 }
210
211
212 public class ConfigSettingDefaults
213 {
214 public string[,] Value=new string[,]
215 {
216 {SettingKey.SQLConnectionString.ToString(),@""},
217 {SettingKey.MailUserName.ToString(),@""},
218 {SettingKey.MailPassWord.ToString(),@""},
219 {SettingKey.MailPOP3ServerAddress.ToString(),@""},
220 {SettingKey.MailSMTPServerAddress.ToString(),@""},
221 {SettingKey.MailPOP3Port.ToString(),@""},
222 {SettingKey.MailRecipientsAddress.ToString(),@""},
223 {SettingKey.MailAddress.ToString(),@""},
224
225 };
226
227 }
228 /**//// <summary>
229 /// 配置项
230 /// </summary>
231 public enum SettingKey
232 {
233 SQLConnectionString//lianjie
234 ,MailUserName,MailPassWord,MailPOP3ServerAddress,MailSMTPServerAddress,MailPOP3Port,MailRecipientsAddress,MailAddress
235 }
236
237}
238
2using System.IO;
3using System.Xml;
4using System.Collections;
5using System.Windows.Forms;
6namespace SSSSystem.Class
7{
8 /**//// <summary>
9 /// ConfigSettings 的摘要说明。
10 /// </summary>
11 public class ConfigSettings
12 {
13 public ConfigSettings()
14 {
15 //
16 // TODO: 在此处添加构造函数逻辑
17 //
18 InitFilePath();
19 Read();
20 }
21
22 私有成员#region 私有成员
23 private Hashtable list = new Hashtable();
24 private string filePath="";
25 private bool autoWrite=true;
26 private string[,] _defaultValues;
27 #endregion
28
29 属性#region 属性
30 public bool AutoWrite
31 {
32 get{return autoWrite;}
33 set{autoWrite=value;}
34 }
35
36 public string FilePath
37 {
38 get
39 {
40 string folderPath=Path.GetDirectoryName(filePath);
41 if(Directory.Exists(folderPath)==false)
42 {
43 Directory.CreateDirectory(folderPath);
44 }
45 return filePath;
46 }
47 set{filePath=value;}
48 }
49 #endregion
50
51 public ConfigSettings(string[,] defaultValues)
52 {
53 _defaultValues=defaultValues;
54 InitFilePath();
55 Read();
56 }
57 public void SetValue(object key,Object _value)
58 {
59 if(! list.Contains(key.ToString()))
60 {
61 throw new Exception("配置文件中没有指定项");
62 }
63 list[key.ToString()] = _value;
64
65 if(autoWrite==true)
66 {
67 Write();
68 }
69 }
70
71 public void AddValue(object key,Object _value)
72 {
73 list.Add(key.ToString(),_value);
74
75 if(autoWrite==true)
76 {
77 Write();
78 }
79 }
80
81 public void RemoveValue(object key)
82 {
83 list.Remove(key.ToString());
84
85 if(autoWrite==true)
86 {
87 Write();
88 }
89 }
90
91
92 public string GetString(object key)
93 {
94 string keyStr = key.ToString();
95 Object result=list[keyStr];
96 if(result==null)
97 {
98 return "";
99 }
100 else
101 {
102 return result.ToString();
103 }
104 }
105
106 public int GetInt(object key)
107 {
108 Object result=GetString(key);
109 if(result==null)
110 {
111 return 0;
112 }
113 else
114 {
115 return int.Parse( result.ToString());
116 }
117
118 }
119 public bool GetBool(object key)
120 {
121 Object result=GetString(key);
122 if(result==null)
123 {
124 return false;
125 }
126 else
127 {
128 return Convert.ToBoolean(result);
129 }
130 }
131 /**//// <summary>
132 /// read settings file
133 /// </summary>
134 public void Read()
135 {
136 list.Clear();
137 for(int i=0;i<_defaultValues.GetLength(0);i++)
138 {
139 list[_defaultValues[i,0]]=_defaultValues[i,1];
140 }
141 if (File.Exists(this.FilePath))
142 {
143 XmlTextReader reader=new XmlTextReader(this.FilePath);
144 while(reader.Read())
145 {
146 if(reader.NodeType==XmlNodeType.Element && reader.Name=="add")
147 {
148 list[reader.GetAttribute("key")]=reader.GetAttribute("value");
149 }
150 }
151 reader.Close();
152 }
153 }
154 /**//// <summary>
155 /// write settings to the .config file
156 /// </summary>
157 public void Write()
158 {
159 XmlTextWriter xmlWriter=new XmlTextWriter(this.FilePath,null);
160
161 xmlWriter.Formatting=Formatting.Indented;
162 xmlWriter.WriteStartElement("configuration");
163 xmlWriter.WriteStartElement("appSettings");
164
165 IDictionaryEnumerator enumerator=list.GetEnumerator();
166 while(enumerator.MoveNext())
167 {
168 xmlWriter.WriteStartElement("add");
169 xmlWriter.WriteStartAttribute("key",null);
170 xmlWriter.WriteString(enumerator.Key.ToString());
171 xmlWriter.WriteEndAttribute();
172
173
174 xmlWriter.WriteStartAttribute("value",null);
175 xmlWriter.WriteString(enumerator.Value.ToString());
176 xmlWriter.WriteEndAttribute();
177
178 xmlWriter.WriteEndElement();
179
180 }
181 xmlWriter.WriteEndElement();
182 xmlWriter.WriteEndElement();
183 xmlWriter.Flush();
184 xmlWriter.Close();
185
186 }
187
188
189
190 public void RestoreDefaults()
191 {
192 try
193 {
194 File.Delete(FilePath);
195 Read();
196 }
197 catch(Exception ex)
198 {
199 System.Diagnostics.Debug.Fail("删除默认配置文件时出错",ex.Message);
200 }
201 }
202
203
204 public void InitFilePath()
205 {
206 this.FilePath= Application.ExecutablePath + ".config";
207
208 }
209 }
210
211
212 public class ConfigSettingDefaults
213 {
214 public string[,] Value=new string[,]
215 {
216 {SettingKey.SQLConnectionString.ToString(),@""},
217 {SettingKey.MailUserName.ToString(),@""},
218 {SettingKey.MailPassWord.ToString(),@""},
219 {SettingKey.MailPOP3ServerAddress.ToString(),@""},
220 {SettingKey.MailSMTPServerAddress.ToString(),@""},
221 {SettingKey.MailPOP3Port.ToString(),@""},
222 {SettingKey.MailRecipientsAddress.ToString(),@""},
223 {SettingKey.MailAddress.ToString(),@""},
224
225 };
226
227 }
228 /**//// <summary>
229 /// 配置项
230 /// </summary>
231 public enum SettingKey
232 {
233 SQLConnectionString//lianjie
234 ,MailUserName,MailPassWord,MailPOP3ServerAddress,MailSMTPServerAddress,MailPOP3Port,MailRecipientsAddress,MailAddress
235 }
236
237}
238