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);
                    }
                }
            }

  • 相关阅读:
    VML编程之shape多边型.shapetype模版.shape与curve曲线《VML极道教程》原著:沐缘华
    VML编程之image图片《VML极道教程》原著:沐缘华
    软件开发项目的风险管理 (转)
    VML编程之polyline多边型《VML极道教程》原著:沐缘华
    VML编程之标记实战与line线《VML极道教程》原著:沐缘
    xml操作类,封装了常用的对XML文件的操作功能....
    Bugzilla 安装手册
    IT项目管理之<<少林练步拳>>(转)
    Atlas学习手记(8):调用本地Web Service简单介绍(转摘)
    WF从设计器出发,到对从设计器出来的工作流的调用加载,已经完成了整个工作流的详细设计,目前工作流设计器已经完成!
  • 原文地址:https://www.cnblogs.com/kgadb/p/6523550.html
Copyright © 2011-2022 走看看