配置文件——WebApp.config文件读取和修改

[csharp] view plain copy

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Configuration;
  4. using System.Linq;
  5. using System.Net.Mime;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Web;
  9. using System.Xml;
  10. namespace Infrastructure
  11. {
  12. public class WebConfigHelper
  13. {
  14. private Configuration _config;
  15. private readonly string _configPath;
  16. private readonly ConfigType _configType;
  17. /// <summary>
  18. /// 对应的配置文件
  19. /// </summary>
  20. public Configuration Configuration
  21. {
  22. get { return _config; }
  23. set { _config = value; }
  24. }
  25. /// <summary>
  26. /// 构造函数
  27. /// </summary>
  28. public WebConfigHelper()
  29. {
  30. _configPath = HttpContext.Current.Request.ApplicationPath;
  31. Initialize();
  32. }
  33. /// <summary>
  34. /// 构造函数
  35. /// </summary>
  36. /// <param name="configPath">.config文件的位置</param>
  37. /// <param name="configType">.config文件的类型,只能是网站配置文件或者应用程序配置文件</param>
  38. public WebConfigHelper(string configPath, ConfigType configType)
  39. {
  40. this._configPath = configPath;
  41. this._configType = configType;
  42. Initialize();
  43. }
  44. //实例化configuration,根据配置文件类型的不同,分别采取了不同的实例化方法
  45. private void Initialize()
  46. {
  47. //如果是WinForm应用程序的配置文件
  48. if (_configType == ConfigType.ExeConfig)
  49. {
  50. _config = ConfigurationManager.OpenExeConfiguration(_configPath);
  51. }
  52. else //WebForm的配置文件
  53. {
  54. _config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(_configPath);
  55. }
  56. }
  57. public string GetValueByKey(string key)
  58. {
  59. return ConfigurationManager.AppSettings[key];
  60. }
  61. /// <summary>
  62. /// 添加应用程序配置节点,如果已经存在此节点,则会修改该节点的值
  63. /// </summary>
  64. /// <param name="key">节点名称</param>
  65. /// <param name="value">节点值</param>
  66. public void AddAppSetting(string key, string value)
  67. {
  68. var appSetting = (AppSettingsSection)_config.GetSection("appSettings");
  69. if (appSetting.Settings[key] == null) //如果不存在此节点,则添加
  70. {
  71. appSetting.Settings.Add(key, value);
  72. }
  73. else //如果存在此节点,则修改
  74. {
  75. ModifyAppSetting(key, value);
  76. }
  77. }
  78. /// <summary>
  79. /// 修改应用程序配置节点,如果不存在此节点,则会添加此节点及对应的值
  80. /// </summary>
  81. /// <param name="key">节点名称</param>
  82. /// <param name="newValue">节点值</param>
  83. public void ModifyAppSetting(string key, string newValue)
  84. {
  85. var appSetting = (AppSettingsSection)_config.GetSection("appSettings");
  86. if (appSetting.Settings[key] != null) //如果存在此节点,则修改
  87. {
  88. appSetting.Settings[key].Value = newValue;
  89. }
  90. else //如果不存在此节点,则添加
  91. {
  92. AddAppSetting(key, newValue);
  93. }
  94. }
  95. /// <summary>
  96. /// 添加数据库连接字符串节点,如果已经存在此节点,则会修改该节点的值
  97. /// </summary>
  98. /// <param name="key">节点名称</param>
  99. /// <param name="connectionString">节点值</param>
  100. public void AddConnectionString(string key, string connectionString)
  101. {
  102. var connectionSetting = (ConnectionStringsSection)_config.GetSection("connectionStrings");
  103. if (connectionSetting.ConnectionStrings[key] == null) //如果不存在此节点,则添加
  104. {
  105. var connectionStringSettings = new ConnectionStringSettings(key, connectionString);
  106. connectionSetting.ConnectionStrings.Add(connectionStringSettings);
  107. }
  108. else //如果存在此节点,则修改
  109. {
  110. ModifyConnectionString(key, connectionString);
  111. }
  112. }
  113. /// <summary>
  114. /// 修改数据库连接字符串节点,如果不存在此节点,则会添加此节点及对应的值
  115. /// </summary>
  116. /// <param name="key">节点名称</param>
  117. /// <param name="connectionString">节点值</param>
  118. public void ModifyConnectionString(string key, string connectionString)
  119. {
  120. var connectionSetting = (ConnectionStringsSection)_config.GetSection("connectionStrings");
  121. if (connectionSetting.ConnectionStrings[key] != null) //如果存在此节点,则修改
  122. {
  123. connectionSetting.ConnectionStrings[key].ConnectionString = connectionString;
  124. }
  125. else //如果不存在此节点,则添加
  126. {
  127. AddConnectionString(key, connectionString);
  128. }
  129. }
  130. /// <summary>
  131. /// 保存所作的修改
  132. /// </summary>
  133. public void Save()
  134. {
  135. _config.Save();
  136. }
  137. }
  138. public enum ConfigType
  139. {
  140. /// <summary>
  141. /// asp.net网站的config文件
  142. /// </summary>
  143. WebConfig = 1,
  144. /// <summary>
  145. /// Windows应用程序的config文件
  146. /// </summary>
  147. ExeConfig = 2
  148. }
  149. }

版权声明:本文为博主原创文章,未经博主允许不得转载。for you!

时间: 2024-10-07 04:18:15

配置文件——WebApp.config文件读取和修改的相关文章

配置文件——App.config文件读取和修改

作普通的xml文件读取的话,首先就要知道怎么寻找文件的路径.我们知道一般配置文件就在跟可执行exe文件在同一目录下,且仅仅在名称后面添加了一个.config 因此,可以用Application.ExecuteablePath+".cofig"的方式来获得,不过更加推荐使用AppDomain.CurrentDomain.SetupInformation.ConfigurationFile这句话来直接获取当前程序的配置文件的位置,具体原因,后面再叙述. 现在回过头还是看上面的这个函数,看它

C# xml文件读取与修改

c#读写xml文件已知有一个XML文件(bookstore.xml)如下: Code<?xml version="1.0" encoding="gb2312"?><bookstore> <book genre="fantasy" ISBN="2-3631-4"> <title>Oberon's Legacy</title> <author>Corets,

在.net中读写config文件的各种方法(自定义config节点)

http://www.cnblogs.com/fish-li/archive/2011/12/18/2292037.html 阅读目录 开始 config文件 - 自定义配置节点 config文件 - Property config文件 - Element config文件 - CDATA config文件 - Collection config文件 - 读与写 读写 .net framework中已经定义的节点 xml配置文件 xml配置文件 - CDATA xml文件读写注意事项 配置参数的

MySQL参数文件及参数修改方法

MySQL参数文件: MySQL数据库初始化参数由参数文件来设置,如果没有设置参数文件,mysql就按照系统中参数的默认值来启动. 在windows和linux上,参数文件可以被放在多个位置,数据库启动时按照不同的顺序来搜索,如果多个位置都有参数文件,则搜索顺序靠后的参数文件中的参数将覆盖前的参数. Windows上参数文件读取顺序 Linux上参数文件读取顺序 修改mysql参数的方法:

C# 读取和修改指定config文件内的配置

由于修改默认的app.config文件,总是会在执行完后被旧文件覆盖,不清楚是什么原因.所以替代办法是在另外一个自定义的配置文件中进行读写. 1.读取 //读取Debug文件夹下自定义的PrintSetting.config中的配置信息 private string getConfig(string key) { string fileName = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\PrintSetting

实现快速读写配置文件的内容,可以用于读取*.exe.config文件或者Web.Config文件的内容,或者可以读取指定文件的配置项.

形如: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microso

C#对config.ini文件进行读取和修改

C#对config.ini文件进行读取和修改: public partial class Patrolcar : Form之后可以加入如下类: #region public class IniFile { public string map_length, map_width, maxnum_connect, net_ip; public string path; [DllImport("kernel32")] private static extern long WritePriva

.Net配置文件读取及修改方法封装(未加密)

.Net平台下开发时,需要将有些数据存储在XML文档中,而我们的首选即是默认新建的app.Config了.新建流程如下: 第一步:在启动工程上右键->添加->新建项.如下图: 第二步:新建配置文件,修改名称,切记要将默认的App1.config修改为App.config,因为默认寻找的配置文件名称是App.config.如果不改名称将找不到,如下图: 第三步:添加相应的connectionStrings和appSettings,如下图: 那么至此,我们的配置文件已经创建好了.那么创建好的配置文

[C++基础]一个比较常用的配置文件/初始化文件读取程序

在编程中,我们经常会遇到一些配置文件或初始化文件.这些文件通常后缀名为.ini或者.conf,可以直接用记事本打开.里面会存储一些程序参数,在程序中直接读取使用.例如,计算机与服务器通信,服务器的ip地址,段口号可以存储于ini文件中.这样如果我想换另外一台服务器时,直接将ini文件中的ip地址改变即可,程序源代码不需要做任何修改. 本文将分享一段常用代码,用于读取配置文件中的信息.本文中的代码为C语言编写,在ubuntu 12.04 linux系统中调试没有问题.具体操作如下: 1. 首先用记