2009-02-26 24 views

答えて

28

Yes, you do

.NET Frameworkが一度のapp.configを読んで、再度のapp.configに触れることはありません。そのため、変更を取得するためにアプリケーションを再起動する必要があります。

なぜ、.Netフレームワークがapp.configが変更されたことを検出し、すべての設定データを更新しないのですか?

理由は簡単ですが、これは一般的に不可能です。

ましょう使用ここレイモンドさん「これが行うことができる想像論理」...

4

はい。

おそらくappname.exe.configファイルを意味しますか?

8

いいえ、あなたはにはがありません。しかし、app.configの変更を有効にするには、再起動が必要な場合があります。あるいは、サービスの設定を即座に変更するカスタム構成ファイルウォッチャーの仕組みを実装することもできます。

+7

"app.configの変更を有効にしたい場合は、" - 私はそれが暗黙のうちにあると思います質問! –

+0

偉大な、ちょうど私がゴムの鶏が出ているとき。 –

+0

@Gamecat:フリーレンジ? –

1

これは問題の範囲から外れていますが、私はあなたが「アプリケーション固有の」セクション(appSettingsなど)でのみ変更したいと思います。

あなた自身の設定ファイルを監視している独自の設定セクションハンドラを作成する方がよいでしょう - アプローチはnlog usesです。 「自動再構成」のセクションを確認してください。

2

通常はyesです。しかし、ファイル・モニターを構成ファイルに置き、変更を検知して再始動する必要なしに適用するWindowsサービスを作成することができます。

たとえば、Log4Netロギングフレームワークは、その構成ファイルにそのようなメカニズムを提供します。

7

私は以前これを使用しました。基本的には、値を取得する前に指定されたセクションをリロードします。オンデマンドでリフレッシュする設定ファイルウォッチャーよりも効率的ではありませんが、慎重に使用すると効果的です。

ConfigurationManager.RefreshSection("appSettings") 
    sValue = ConfigurationManager.AppSettings(name) 
+0

それは素晴らしい発見です! – d219

関連する問題