1.修改appSettings設置api
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");
}app
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
{ }
}string
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);
}
}
}io