2009-04-23 67 views
1

這非常令人沮喪......我可以爲Windows窗體應用程序設置配置文件就好了。考慮到這一點:如何在WPF中指定我的應用程序的App.config文件的名稱?

public static void Main(){ 
    AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", @"SharedAppConfig.config"); 
    //do other things 
} 

但是,在WPF應用程序,這似乎並沒有工作!如果我設置了這個值,那麼AppDomain.CurrentDomain.SetupInformation.ConfigurationFile屬性的值是正確的,但是在調試時對該配置文件的任何調用都不會產生任何結果。在App.config中有WCF配置設置,我需要在應用程序之間共享,所以這是我提出的解決方案。是否有可能在WPF中動態設置我的配置文件的位置?

幫助!謝謝!

回答

2

你應該能夠做到的線沿線的東西:

using System.Configuration; 

public class TryThis 
{ 
    Configuration config = ConfigurationManager.OpenExeConfiguration("C:\PathTo\app.exe"); 

    public static void Main() 
    { 
     // Get something from the config to test. 
     string test = config.AppSettings.Settings["TestSetting"].Value; 

     // Set a value in the config file. 
     config.AppSettings.Settings["TestSetting"].Value = test; 

     // Save the changes to disk. 
     config.Save(ConfigurationSaveMode.Modified); 
    } 
} 

注意:這將嘗試打開一個名爲app.exe.config文件位於C:\ PathTo。這也需要文件以名稱「app.exe」存在於相同的路徑中。儘管「app.exe」文件可能只是一個空文件。對於你的情況,我幾乎會做一個共享的「Config.dll」庫來處理配置文件。

〜md5sum〜

0

這是服務端還是客戶端?如果在服務方面,通常情況下服務運行在它自己的AppDomain中,所以如果你設置了AppDomain.CurrentDomain.SetData(...),它將不適用於服務配置。

我不完全確定如何解決這個問題,但是您應該能夠通過實施自己的ServiceHost來控制服務的配置。

+0

不,它在客戶端。我發現我可以將客戶端應用程序的app.config文件指向相同的外部文件(appConfig,綁定和客戶端都使用「configSource」屬性指向SharedAppConfig.config,SharedBinding.config和SharedClient.config)。這似乎在同時工作。 – Pwninstein 2009-04-27 12:40:57

相關問題