更改app.config配置文件的方法

  

1.修改appSettings设置

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            var setUrl = config.AppSettings.Settings["ApiAddress"];
            if (setUrl==null)
            {
                config.AppSettings.Settings.Add("ApiAddress", ApiHelper.ApiUrl); ;
                config.Save(ConfigurationSaveMode.Modified);//保存
                ConfigurationManager.RefreshSection("appSettings");//刷新(防止已读入内存)
            }
            else if(setUrl.Value != ApiHelper.ApiUrl)
            {
                config.AppSettings.Settings["ApiAddress"].Value = ApiHelper.ApiUrl;
                config.Save(ConfigurationSaveMode.Modified);
                ConfigurationManager.RefreshSection("appSettings");
            }

2.根据其他项目的appconfig修改当前项目的连接字符串

/// <summary>
        /// 检测api项目的config是不是更改了 如果改了就更新当前项目的config
        /// </summary>
        /// <param name="connectionStringName"></param>
        /// <param name="newConnectionString"></param>
        private void UpdateConfigDBAddress()
        {
            try
            {
                var licenseConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                string apiPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..\\Web.config");
                ExeConfigurationFileMap map = new ExeConfigurationFileMap();
                map.ExeConfigFilename = apiPath;
                Configuration apiConfig = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);

UpdateConfigDBAddress(licenseConfig, apiConfig, "connectionStringName");
            }
            catch
            { }
        }

private void UpdateConfigDBAddress(Configuration licenseConfig,Configuration apiConfig,string connectionStringName)
        {
            ConnectionStringsSection apiSection = (ConnectionStringsSection)apiConfig.GetSection("connectionStrings");
            if (apiSection.ConnectionStrings[connectionStringName] != null)
            {
                string newValue = apiSection.ConnectionStrings[connectionStringName].ToString();
                ConnectionStringsSection licenseSection = (ConnectionStringsSection)licenseConfig.GetSection("connectionStrings");
                if (licenseSection.ConnectionStrings[connectionStringName] == null)
                {
                    ConnectionStringSettings connectionStringSettings = new ConnectionStringSettings(connectionStringName, newValue);
                    licenseSection.ConnectionStrings.Add(connectionStringSettings);
                    licenseConfig.Save(ConfigurationSaveMode.Full);
                }
                else if (newValue != licenseSection.ConnectionStrings[connectionStringName].ToString())
                {
                    licenseSection.ConnectionStrings[connectionStringName].ConnectionString = newValue;
                    licenseConfig.Save(ConfigurationSaveMode.Full);
                }
            }
        }

时间: 2024-10-26 17:41:25

更改app.config配置文件的方法的相关文章

C# 读写App.config配置文件的方法

一.配置文件概述: 应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序.配置文件的根节点是configuration.我们经常访问的是appSettings,它是由.Net预定义的配置节.我们经常使用的配置文件的架构是客诉下面的形式.先大概有个印象,通过后面的实例会有一个比较清楚的认识.下面的“配置节”可以理解为进行配置一个XML的节点. 常见配置文件模式: <configuration>&l

关于App.config配置文件

今天在做复习的时候,突然发现自己无法读取配置文件中的数据库连接字符串,而且检查了半天也没找出原因,最后求助万能的度娘才得以解决—— 1.App.config配置文件在项目中添加后不要修改名称,否则会出现应用程序找不到该文件的情况,看清楚了,不要改名字~~ 2.常见用途: 我们一般都是用来做数据库访问的,现在有两种比较常见的方式,如下—— (1).key .value方式 例子:配置文件部分: <?xml version="1.0" encoding="utf-8&quo

WinForm修改App.config配置文件功能

WinForm修改App.config配置文件主要是通过System.Configuration.dll里ConfigurationManager类来实现,在功能开发前是需要手动引用该dll文件. ConfigurationManager 类包括可用来执行以下任务的成员: ?从配置文件中读取一个节.若要访问配置信息,请调用 GetSection 方法.对于某些节,例如 appSettings 和 connectionStrings,请使用 AppSettings 和 ConnectionStri

【C#】#103 动态修改App.config配置文件

对 C/S模式 下的 App.config 配置文件的AppSetting节点,支持配置信息现改现用,并可以持久保存. 一. 先了解一下如何获取 配置信息里面的内容[获取配置信息推荐使用这个] 1.1 获取方法一:获取之前需要引用命名空间: using System.Configuration; ConfigurationManager.AppSettings["key"] 1.2 获取方法二:使用XML类,直接 Load 配置文件,然后读取 AppSetting节点下的信息[不推荐使

.NET之如何获取App.config配置文件中的参数值

首先的添加System.Configuration引用 类文件中必须有 using System.Configuration; App.config添加 向App.config配置文件添加参数 例子: 在这个App.config配置文件中,我添加了4个参数,App.config参数类似HashTable都是键/值对 <?xml version="1.0" encoding="utf-8" ?> <configuration> <appS

C#项目 App.config 配置文件不同使用环境配置

问题 部署项目时,常常需要根据不同的环境使用不同的配置文件.例如,在部署网站时可能希望禁用调试选项,并更改连接字符串以使其指向不同的数据库.在创建 Web 项目时,Visual Studio 自动生成了 Web.config.Web.Debug.config.Web.release.config这3个不同的配置文件,并提供了转换工具,用于在部署项目时自动转换配置文件内容.具体可以参考这2篇文章:如何:在部署 Web 应用程序项目时转换 Web.config 和 用于 Web 应用程序项目部署的

C# 读取app.config配置文件 节点键值,提示 &quot;配置系统未能初始化&quot; 错误的解决方案

新建C#项目,在app.config中添加了appSettings项,运行时出现"配置系统未能初始化"的错误,MSDN里写到,如果配置文件中包含 configSections 元素,则 configSections 元素必须是 configuration 元素的第一个子元素.",将自己添加的appSettings放到configSections 后,则正常.

C# App.config 配置文件

<?xml version="1.0" encoding="utf-8"?> <configuration> <connectionStrings> </connectionStrings> <appSettings> <add key="沉鱼" value="西施"/> <add key="落雁" value="昭君&

winform 写App.config配置文件——IT轮子系列(八)

前言 在winform项目中,常常需要读app.config文件.如: 1 var version = System.Configuration.ConfigurationManager.AppSettings["version"]; 而"写",以前想当然是这样的: 1 ConfigurationManager.AppSettings.Set("version","1.0.0"); 可这样写并没有成功,不懂什么原因.那时就以为