0
我有一個應用程序(控制檯)已經到位,正在從bin目錄讀取連接字符串。c#在運行時從文件加載連接字符串
我們計劃通過命令行這將指向configurations.This方式,我們將能夠通過只是改變了命令行參數「ConfigurationDirectory」指向不同DB之間切換
的目錄路徑這要求我們動態加載連接字符串,我的連接字符串格式如下:
<connectionStrings>
<add name="DB1" connectionString="Data Source=DB;Initial Catalog=someCatalog;Persist Security Info=True;User ID=****;Password=****; Asynchronous Processing=true" providerName="System.Data.SqlClient" />
<add name="DB2" connectionString="Data Source=DBName;Initial Catalog=someCatalog2;Persist Security Info=True;User ID=****;Password=****; Asynchronous Processing=true" providerName="System.Data.SqlClient" />
</connectionStrings>
我們沒有配置標籤。因爲抱怨是沒有配置標記
var connectionStringconfigfile = "C:Somepath\connectionstring.config"
ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
configMap.ExeConfigFilename = connectionStringconfigfile;
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("connectionStrings");
我無法使用ConnectionString文件我目前:
要加載連接字符串動態我想這一點。
的問題是,我的代碼已經使用了以下初始化連接字符串:
ConfigurationManager.ConnectionStrings["DB1"].ConnectionString
有了這種新方法上面的行似乎並沒有工作,總是給我空,有沒有辦法讓我不必更改現有的代碼?
爲什麼不直接將連接字符串傳遞給命令行上的可執行文件? – Oded
因爲我們也初始化AppSettings文件,所以它只是一個我們在參數中傳遞的目錄路徑而不是實際的文件名。 –