zoukankan      html  css  js  c++  java
  • 更改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);
                    }
                }
            }

  • 相关阅读:
    HDOJ 1207 汉诺塔II
    [转]写代码的小女孩
    POJ Subway tree systems
    HDOJ 3555 Bomb (数位DP)
    POJ 1636 Prison rearrangement (DP)
    POJ 1015 Jury Compromise (DP)
    UVA 10003
    UVA 103 Stacking Boxes
    HDOJ 3530 Subsequence
    第三百六十二、三天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/kgadb/p/6523550.html
Copyright © 2011-2022 走看看