[英]ConfigurationManager not saving ConnectionString in App.config
[英]Saving ConnectionString in App.config
我正在嘗試使用以下方法在運行時基於每個用戶在app.config
中保存連接字符串:
public void saveConnectionString(string serverName, string conn)
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
var connectionString = config.ConnectionStrings.ConnectionStrings[serverName];
config.ConnectionStrings.SectionInformation.AllowExeDefinition = ConfigurationAllowExeDefinition.MachineToLocalUser;
if (connectionString == null)
{
config.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings
{
Name = serverName,
ConnectionString = conn,
ProviderName = "System.Data.SqlClient"
});
config.Save(ConfigurationSaveMode.Modified);
}
else
{
connectionString.ConnectionString = conn;
}
}
我有一個例外:
鎖定后無法編輯ConfigurationSection屬性。
當我嘗試獲取ConfigurationAllowExeDefinition
。 有沒有辦法建立自己的部分?
在代碼配置后嘗試以下代碼。 保存 :-
ConfigurationManager.RefreshSection( “的ConnectionStrings”);
We cant add to ConfigurationManager.ConnectionStrings using ConfigurationManager.ConnectionStrings.Add(connectionStringSettings) -- This fails.
But we can add to the configuration section and refresh the ConfigurationManager.
public static void AddConnectionStringSettings(
System.Configuration.Configuration config,
System.Configuration.ConnectionStringSettings conStringSettings)
{
ConnectionStringsSection connectionStringsSection = config.ConnectionStrings;
connectionStringsSection.ConnectionStrings.Add(conStringSettings);
config.Save(ConfigurationSaveMode.Minimal);
ConfigurationManager.RefreshSection("connectionStrings");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.