2010-02-15 46 views
4

我有兩個Windows應用程序。例如,形式和FormB如何獲取不同應用程序的app.config並對其進行修改

備考的app.config中是如下

<?xml version="1.0" encoding="utf-8" ?> 

<configuration> 

    <appSettings> 

    <add key="company" value="DSRC"/> 

    </appSettings> 

<connectionStrings> 

<add name="test" connectionString="Testing Connection String"/> 

</connectionStrings> 

</configuration> 

現在我已經另一個應用程序命名爲形式B.

我想檢索表的兩個的AppSettings和的ConnectionStrings阿成形式B.

而且我應該能夠修改這兩個的AppSettings和連接字符串,並將其保存到形式A

我知道如何檢索appsettings以及相同應用程序的連接字符串並進行修改。

但我如何獲得一些其他應用程序並修改它。

請讓我知道。

其實我有4個windows服務運行在一個設置下,一個webservice和一個wcf服務和一個應用程序。 所有這些都有不同的app.configs,包含不同的appsettings和不同的連接字符串。 我應該創建一個Windows應用程序,它將檢索每個這些設置,然後相應地保存它。

我試過高達這個水平

ExeConfigurationFileMap filename= new ExeConfigurationFileMap(); 
fileMap.ExeConfigFilename = @"D:\Home\FormA\FormA\bin\Debug\FormA.exe.config"; 


Configuration config = 
    ConfigurationManager.OpenMappedExeConfiguration(filename, 
    ConfigurationUserLevel.None); 

但隨後剛剛來襲,我只是不知道如何進一步進行(音啞吧!)

誰能幫我繼續向下的方式。

問候 cmrhema

回答

1
  ExeConfigurationFileMap fileMap2 
       = new ExeConfigurationFileMap(); 
      fileMap2.ExeConfigFilename = @"OtherFile"; 

      Configuration config2 = 
       ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); 

      ConnectionStringSettings newSettings = 
       config.ConnectionStrings.ConnectionStrings["oldSConString"]; 

      ConnectionStringsSection csSection 
       = config2.ConnectionStrings; 

      csSection.ConnectionStrings.Add(newSettings);     
      config2.Save(ConfigurationSaveMode.Modified); 

VS2005 C# Programmatically change connection string contained in app.config

+0

Thanks Asad Butt, – cmrhema

2

基本上,你需要打開配置爲其他可執行文件是這樣的:

// full path to other EXE, including EXE extension - but *NOT* .config !! 
string otherExePath = @"C:\........\OtherApp\bin\Debug\OtherApp.exe"; 
Configuration otherConfig = 
       ConfigurationManager.OpenExeConfiguration(otherExePath); 

然後你就可以訪問所有新的otherConfig配置上的設置:

string otherSetting = otherConfig.AppSettings.Settings["TestSetting1"].Value; 

並且您還可以將其保存回來(前提是您擁有對該目錄的必要權限)。

otherConfig.Save(): 
相關問題