.net2.0中对config文件的操作方法总结
2. connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
3. //读取config里名称为"Font_Size"的应用程序配置信息
4. System.Configuration.ConfigurationManager.AppSettings["Font-Size"] = 9;
2. XmlDocument document = LoadXml();
3. XmlNode root = document.DocumentElement;
4. XmlNodeList nodeList = root.FirstChild.ChildNodes;
5. for (int i = 0; i < nodeList.Count; i++)
6. {
7. string key = nodeList[i].Attributes["key"].Value;
8. if (key == "FilterOption")
9. {
10. nodeList[i].Attributes["value"].Value = ((int)container.FilterOption).ToString();
11. }
12. }
13. document.Save(configPath);
14. #endregion
但是在WebForm下,往往会因为权限不足而报错。如下图:
2. using System.Configuration;
3. using System.Web;
4. using System.Windows.Forms;
5.
6. namespace NetSkycn.Common
7. {
8. /// <summary>
9. /// 说明:Config文件类型枚举,
10. /// 分别为asp.net网站的config文件和WinForm的config文件
11. /// 作者:周公
12. /// 日期:2008-08-23
13. ///
14. /// </summary>
15. public enum ConfigType
16. {
17. /// <summary>
18. /// asp.net网站的config文件
19. /// </summary>
20. WebConfig = 1,
21. /// <summary>
22. /// Windows应用程序的config文件
23. /// </summary>
24. ExeConfig = 2
25. }
26.
27. /// <summary>
28. /// 说明:本类主要负责对程序配置文件(.config)进行修改的类,
29. /// 可以对网站和应用程序的配置文件进行修改
30. /// 作者:周公
31. /// 日期:2008-08-23
32. /// 首发地址:http://blog.csdn.net/zhoufoxcn/archive/2008/08/24/2823508.aspx
33. /// </summary>
34. public class ConfigurationOperator
35. {
36. private Configuration config;
37. private string configPath;
38. private ConfigType configType;
39.
40. /// <summary>
41. /// 对应的配置文件
42. /// </summary>
43. public Configuration Configuration
44. {
45. get { return config; }
46. set { config = value; }
47. }
48. /// <summary>
49. /// 构造函数
50. /// </summary>
51. /// <param name="configType">.config文件的类型,只能是网站配置文件或者应用程序配置文件</param>
ConfigurationOperator() ConfigurationOperator(ConfigType configType)
53. {
54. this.configType = configType;
55. if (configType == ConfigType.ExeConfig)
56. {
57. configPath = Application.ExecutablePath; //AppDomain.CurrentDomain.BaseDirectory;
58. }
59. else
60. {
61. configPath = HttpContext.Current.Request.ApplicationPath;
62. }
63. Initialize();
64. }
65. /// <summary>
66. /// 构造函数
67. /// </summary>
68. /// <param name="path">.config文件的位置</param>
69. /// <param name="type">.config文件的类型,只能是网站配置文件或者应用程序配置文件</param>
ConfigurationOperator() ConfigurationOperator(string configPath, ConfigType configType)
71. {
72. this.configPath = configPath;
73. this.configType = configType;
74. Initialize();
75. }
76. //实例化configuration,根据配置文件类型的不同,分别采取了不同的实例化方法
void Initialize() void Initialize()
78. {
79. //如果是WinForm应用程序的配置文件
80. if (configType == ConfigType.ExeConfig)
81. {
82. config = System.Configuration.ConfigurationManager.OpenExeConfiguration(configPath);
83. }
84. else//WebForm的配置文件
85. {
86. config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(configPath);
87. }
88. }
89.
90. /// <summary>
91. /// 添加应用程序配置节点,如果已经存在此节点,则会修改该节点的值
92. /// </summary>
93. /// <param name="key">节点名称</param>
94. /// <param name="value">节点值</param>
void AddAppSetting() void AddAppSetting(string key, string value)
96. {
97. AppSettingsSection appSetting = (AppSettingsSection)config.GetSection("appSettings");
98. if (appSetting.Settings[key] == null)//如果不存在此节点,则添加
99. {
100. appSetting.Settings.Add(key, value);
101. }
102. else//如果存在此节点,则修改
103. {
104. ModifyAppSetting(key, value);
105. }
106. }
107. /// <summary>
108. /// 添加数据库连接字符串节点,如果已经存在此节点,则会修改该节点的值
109. /// </summary>
110. /// <param name="key">节点名称</param>
111. /// <param name="value">节点值</param>
void AddConnectionString() void AddConnectionString(string key, string connectionString)
113. {
114. ConnectionStringsSection connectionSetting = (ConnectionStringsSection)config.GetSection("connectionStrings");
115. if (connectionSetting.ConnectionStrings[key] == null)//如果不存在此节点,则添加
116. {
117. ConnectionStringSettings connectionStringSettings = new ConnectionStringSettings(key, connectionString);
118. connectionSetting.ConnectionStrings.Add(connectionStringSettings);
119. }
120. else//如果存在此节点,则修改
121. {
122. ModifyConnectionString(key, connectionString);
123. }
124. }
125. /// <summary>
126. /// 修改应用程序配置节点,如果不存在此节点,则会添加此节点及对应的值
127. /// </summary>
128. /// <param name="key">节点名称</param>
129. /// <param name="value">节点值</param>
void ModifyAppSetting() void ModifyAppSetting(string key, string newValue)
131. {
132. AppSettingsSection appSetting = (AppSettingsSection)config.GetSection("appSettings");
133. if (appSetting.Settings[key] != null)//如果存在此节点,则修改
134. {
135. appSetting.Settings[key].Value = newValue;
136. }
137. else//如果不存在此节点,则添加
138. {
139. AddAppSetting(key, newValue);
140. }
141. }
142. /// <summary>
143. /// 修改数据库连接字符串节点,如果不存在此节点,则会添加此节点及对应的值
144. /// </summary>
145. /// <param name="key">节点名称</param>
146. /// <param name="value">节点值</param>
void ModifyConnectionString() void ModifyConnectionString(string key, string connectionString)
148. {
149. ConnectionStringsSection connectionSetting = (ConnectionStringsSection)config.GetSection("connectionStrings");
150. if (connectionSetting.ConnectionStrings[key] != null)//如果存在此节点,则修改
151. {
152. connectionSetting.ConnectionStrings[key].ConnectionString = connectionString;
153. }
154. else//如果不存在此节点,则添加
155. {
156. AddConnectionString(key, connectionString);
157. }
158. }
159. /// <summary>
160. /// 保存所作的修改
161. /// </summary>
void Save() void Save()
163. {
164. config.Save();
165. }
166. }
167. }
(一)WebForm中的用法
2. string key = txtConnectionStringKey.Text;
3. string value = txtConnectionStringValue.Text;
4. co.AddConnectionString(key, value);
5. co.Save();
2. co.AddAppSetting("Font-Size", "9");
3. co.AddAppSetting("WebSite", "http://blog.csdn.net/zhoufoxcn");
4. co.AddConnectionString("Connection", "test");
5. co.Save();//保存写入结果
2. <configuration>
3. <appSettings>
4. <add key="Font-Size" value="9" />
5. <add key="WebSite" value="http://zhoufoxcn.blog.51cto.com" />
6. </appSettings>
7. <connectionStrings>
8. <add name="Connection" connectionString="test" />
9. </connectionStrings>
10. </configuration>
转载于:https://blog.51cto.com/zhoufoxcn/166844
.net2.0中对config文件的操作方法总结相关推荐
- ASP.NET2.0中的App_Data文件的作用
APP_Data文件夹:包含应用程序数据文件,包括 MDF 文件.XML 文件和其他数据存储文件.ASP.NET 2.0 使用 App_Data 文件夹来存储应用程序的本地数据库,该数据库可用于维护成 ...
- ASP.NET2.0中的全球化与本地化UICulture,Culture
ASP.NET2.0中的全球化与本地化UICulture,Culture 来源:转载 日期:2007-2-28 14:59:01 阅读:324 评论:0 一.简介 全球化和本地化是每一位开发者在创 ...
- 在ASP.Net2.0中使用UrlRewritingNet实现链接重写(转)
在ASP.Net2.0中使用UrlRewritingNet实现链接重写 很多时候我们需要链接转向(Url Rewriting),例如二级域名转向.文章访问链接等场合. 让我们看两个例子: 1 你现在看 ...
- 在ASP.Net2.0中使用UrlRewritingNet实现链接重写
在ASP.Net2.0中使用UrlRewritingNet实现链接重写 很多时候我们需要链接转向(Url Rewriting),例如二级域名转向.文章访问链接等场合. 让我们看两个例子: 1 你现在看 ...
- ASP.NET2.0中themes、Skins轻松实现网站换肤!
ASP.NET2.0中themes.Skins轻松实现网站换肤! 可能有些朋友还不是很清楚themes.skins.下面先介绍下themes.skins.. 一.简介: 一看Themes.Skins这 ...
- .net2.0中SqlBulkCopy批量复制数据出错原因分析!
在项目后台数据库选择SqlServer,进行批量复制数据时,.net2.0中提供的SqlBulkCopy不失为一个好的选择,性能相当可观;最近亲手实验一把,效果不错,大家可以参见http://www. ...
- 在.net中读写config文件的各种方法(转载)
阅读目录 开始 config文件 - 自定义配置节点 config文件 - Property config文件 - Element config文件 - CDATA config文件 - Collec ...
- ValidateRequest=false 不在.net2.0 中该怎么办?
ValidateRequest=false 不在.net2.0 中该怎么办? ASP.NET请求验证功能可以给我提供应用程序的保存,避免站点受到XSS的攻击. 但是在一些情况下,我们需要禁用这个功能, ...
- .NET2.0中,Winform程序如何异步调用Web Service呢?[Demo下载]——与.net1.1环境下比较...
最近在MSDN上看到一个在.NET1.1中Winform程序异步调用WebService的例子 我准备模仿着迁移到.NET2.0环境中,遗憾的是,一切不是那么简单. 首先,.net1.1中调用的Web ...
- ASP.NET2.0中的ClientScriptManager 类用法—如何添加客户端事件!
在ASP.NET2.0中,ClientScriptManager 类通过键 String 和 Type 唯一地标识脚本.具有相同的键和类型的脚本被视为重复脚本.因此,我们可以使用脚本类型来避免混淆可能 ...
最新文章
- PlanAhead工具应用
- 苹果电脑怎么设置佳博标签打印机_自动接单、打印快,手动调节音量,佳博推出后厨专用智能打印机...
- 为什么不读顶级会议论文?
- ajax 解析数组集合,ajax怎样解析json数组并用模板引擎渲染
- 大数据可视化常见的三种错误
- 国家缩写大全 mysql_所有国家英文缩写
- jquery版本之间的冲突
- emacs python_将Emacs打造成强大的Python代码编辑工具
- 计算机c盘能格式化吗,C盘能格式化吗
- Ubuntu20.04安装微信的方法
- 【单片机】【数码管】数码管显示
- 无法连接虚拟设备 ide1:0,因为主机上没有相应的设备。 您要在每次开启此虚拟机时都尝试连接此虚拟设备吗?
- 远程桌面怎么记住登录计算机,大神处理windows10电脑远程桌面自动记录登录密码的具体操作办法...
- Windows XP 中如何安装 pem 证书
- C Primer Plus (第五版) 第十四章 结构和其它数据形式 编程练习
- 06_Callable接口
- 半物理仿真系统——EPB HIL系统解决方案
- 【ISAR成像定标方法(2)—平动目标ISAR成像的运动补偿方法MATLAB仿真】
- 【NLP】用ML实现中文短文本分类(二分类)
- Lattice开发教程-第一个例程
热门文章
- JS学习总结(12)——Math对象/时间对象
- 土地覆盖和土地利用的区别
- linux显示防火墙端口命令,Linux查询端口是否被防火墙屏蔽 firewall-cmd命令用法
- Android Context简单说明
- Java并发编程实践笔记(一)
- 每天一点正则表达式积累(三)
- HDU2612---(两次BFS)
- 公众号 多服务器配置_多领国微信官方公众号在线
- delphi ado 连接mysql_delphi mysql ado连接
- java ssh 项目心得_ssh实训总结(共10篇).docx