2009-04-23 8 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

あなたはの線に沿って何かを行うことができるはず。これは、Cでapp.exe.configという名前のファイルを開こうとします:\ PathToを。これはまた、同じパスに "app.exe"という名前のファイルが存在することを要求します。しかし、 "app.exe"ファイルは空のファイルでもかまいません。あなたの場合は、ほとんどの場合、configファイルを処理する共有 "Config.dll"ライブラリを作成します。

〜md5sum〜

0

これはサービス側かクライアント側ですか。サービス側では、サービスが独自のAppDomainで実行されていることがよくあります。そのため、AppDomain.CurrentDomain.SetData(...)を設定すると、サービス構成には適用されません。

これを回避する方法は完全にはわかりませんが、独自のServiceHostを実装することでサービスの設定を制御できるはずです。

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); 
    } 
} 

注:

+0

いいえ、それはクライアント側です。私は、クライアントアプリケーションのapp.configファイルを、同じ外部ファイル(appConfig、バインディング、クライアントはすべて "configSource"属性を使用してSharedAppConfig.config、SharedBinding.config、およびSharedClient.configを指す)にポイントできることを発見しました。これはまもなく効くようです。 – Pwninstein

関連する問題