CS客户端 App.Config更新问题

 

 

appconfig更新必须要重启才可以  这个方法为热更新不用重新启动

 

 

  public void ModifyConfig(string serverName, string dbName, string userName, string password, params string[] ConfigFileNameList)
        {
            for (int i = 0; i < ConfigFileNameList.Length; i++)
            {
                string ConfigFilePath = Path.Combine(SetUpPath, ConfigFileNameList[i]);
                System.IO.FileInfo FileInfo = new System.IO.FileInfo(ConfigFilePath);
                if (!FileInfo.Exists) //不存在web.config文件
                {
                    throw new Exception("没有找到文统配置文件!");
                }
                try
                {
                    bool isModified = false;    //记录该连接串是否已经存在      
                                                //如果要更改的连接串已经存在      
                    if (ConfigurationManager.ConnectionStrings["ConnStr"]!= null)
                    {
                        isModified = true;
                    }
                    //新建一个连接字符串实例      
                    ConnectionStringSettings mySettings =
                        new ConnectionStringSettings("ConnStr",GetConnectionString(serverName, dbName, userName, password), "System.Data.SqlClient");
                    // 打开可执行的配置文件*.exe.config 
                    Configuration config =
                        ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                    // 如果连接串已存在,首先删除它      
                    if (isModified)
                    {
                        config.ConnectionStrings.ConnectionStrings.Remove("ConnStr");
                    }
                    // 将新的连接串添加到配置文件中.      
                    config.ConnectionStrings.ConnectionStrings.Add(mySettings);
                    // 保存对配置文件所作的更改      
                    config.Save(ConfigurationSaveMode.Modified);
                    // 强制重新载入配置文件的ConnectionStrings配置节      
                    ConfigurationManager.RefreshSection("connectionStrings");


                    //string ConfigContent = System.IO.File.ReadAllText(FileInfo.FullName);
                    //ConfigContent = ConfigContent.Replace("{ConnStr}", GetConnectionString(serverName, dbName, userName, password));
                    //string dateCode = DesEncryption.Encrypt(DateTime.Now.AddMonths(1).ToShortDateString());
                    //ConfigContent = ConfigContent.Replace("{RegisterCode}", dateCode);
                    //System.IO.File.WriteAllText(FileInfo.FullName, ConfigContent);


                }
                catch(Exception ex)
                {
                    throw new Exception("修改web.config配置文件失败!");
                }
            }
        }

 

posted @ 2019-09-07 11:14  这个问题解决不了  阅读(45)  评论(0编辑  收藏  举报