配置文件——WebApp.config文件读取和修改
2016-04-21 16:19
288 查看
using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Net.Mime; using System.Text; using System.Threading.Tasks; using System.Web; using System.Xml; namespace Infrastructure { public class WebConfigHelper { private Configuration _config; private readonly string _configPath; private readonly ConfigType _configType; /// <summary> /// 对应的配置文件 /// </summary> public Configuration Configuration { get { return _config; } set { _config = value; } } /// <summary> /// 构造函数 /// </summary> public WebConfigHelper() { _configPath = HttpContext.Current.Request.ApplicationPath; Initialize(); } /// <summary> /// 构造函数 /// </summary> /// <param name="configPath">.config文件的位置</param> /// <param name="configType">.config文件的类型,只能是网站配置文件或者应用程序配置文件</param> public WebConfigHelper(string configPath, ConfigType configType) { this._configPath = configPath; this._configType = configType; Initialize(); } //实例化configuration,根据配置文件类型的不同,分别采取了不同的实例化方法 private void Initialize() { //如果是WinForm应用程序的配置文件 if (_configType == ConfigType.ExeConfig) { _config = ConfigurationManager.OpenExeConfiguration(_configPath); } else //WebForm的配置文件 { _config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(_configPath); } } public string GetValueByKey(string key) { return ConfigurationManager.AppSettings[key]; } /// <summary> /// 添加应用程序配置节点,如果已经存在此节点,则会修改该节点的值 /// </summary> /// <param name="key">节点名称</param> /// <param name="value">节点值</param> public void AddAppSetting(string key, string value) { var appSetting = (AppSettingsSection)_config.GetSection("appSettings"); if (appSetting.Settings[key] == null) //如果不存在此节点,则添加 { appSetting.Settings.Add(key, value); } else //如果存在此节点,则修改 { ModifyAppSetting(key, value); } } /// <summary> /// 修改应用程序配置节点,如果不存在此节点,则会添加此节点及对应的值 /// </summary> /// <param name="key">节点名称</param> /// <param name="newValue">节点值</param> public void ModifyAppSetting(string key, string newValue) { var appSetting = (AppSettingsSection)_config.GetSection("appSettings"); if (appSetting.Settings[key] != null) //如果存在此节点,则修改 { appSetting.Settings[key].Value = newValue; } else //如果不存在此节点,则添加 { AddAppSetting(key, newValue); } } /// <summary> /// 添加数据库连接字符串节点,如果已经存在此节点,则会修改该节点的值 /// </summary> /// <param name="key">节点名称</param> /// <param name="connectionString">节点值</param> public void AddConnectionString(string key, string connectionString) { var connectionSetting = (ConnectionStringsSection)_config.GetSection("connectionStrings"); if (connectionSetting.ConnectionStrings[key] == null) //如果不存在此节点,则添加 { var connectionStringSettings = new ConnectionStringSettings(key, connectionString); connectionSetting.ConnectionStrings.Add(connectionStringSettings); } else //如果存在此节点,则修改 { ModifyConnectionString(key, connectionString); } } /// <summary> /// 修改数据库连接字符串节点,如果不存在此节点,则会添加此节点及对应的值 /// </summary> /// <param name="key">节点名称</param> /// <param name="connectionString">节点值</param> public void ModifyConnectionString(string key, string connectionString) { var connectionSetting = (ConnectionStringsSection)_config.GetSection("connectionStrings"); if (connectionSetting.ConnectionStrings[key] != null) //如果存在此节点,则修改 { connectionSetting.ConnectionStrings[key].ConnectionString = connectionString; } else //如果不存在此节点,则添加 { AddConnectionString(key, connectionString); } } /// <summary> /// 保存所作的修改 /// </summary> public void Save() { _config.Save(); } } public enum ConfigType { /// <summary> /// asp.net网站的config文件 /// </summary> WebConfig = 1, /// <summary> /// Windows应用程序的config文件 /// </summary> ExeConfig = 2 } }
相关文章推荐
- spring java 获取webapp下文件路径
- 通过WebApplicationContextUtils工具类获取ApplicationContext对象
- WebApp 九宫格抽奖简易demo
- 图文详解MyEclipse中新建Maven webapp项目的步骤(很详细)
- 网易webapp 通过js计算html的font-size
- (box-flex) webapp开发信息流的一种方式
- 扯谈spring mvc之WebApplicationContext的继承关系
- Spring-MVC理解之一:应用上下文webApplicationContext
- webapp 微信开发适配问题
- spring mvc 源码研究简单笔记--web容器启动加载WebApplicationContext和初始化DispatcherServlet
- Choose unique values for the 'webAppRootKey' context-param in your web.xml files!
- Jersey(1.19.1) - WebApplicationException and Mapping Exceptions to Responses
- AngularJS学习笔记(三) 单页面webApp和路由(ng-route)
- WebApp开发之--"rem"单位(转)
- WebApplicationInitializer (spring 3.x.x以上版本)
- 创建maevn项目的时候报错:maven-archetype-webapp:pom:RELEASE
- web中webAppRootKey作用
- spring设置webAppRootKey
- java web中如何获取spring容器中定义的bean----WebApplicationContext的使用
- 使用ionic开发webapp进行文件上传与下载