DOBON.NET DOBON.NETプログラミング掲示板過去ログ

「アプリケーション構成ファイル」について

環境/言語:[Windows2000/VB.net2002]
分類:[.NET]

初めて書き込みをさせていただきます。

どぼんさんの『「アプリケーション構成ファイル」を編集する』を参考に、アプリケーション構成ファイルの値を変更してみました。
しかし書き換えた直後「System.Configuration.ConfigurationSettings.AppSettings()」を使用し、値を読み取ると書き換える前の値になってます。

------------------------------------------------------------------
Trace.WriteLine("書換前:" & _
System.Configuration.ConfigurationSettings.AppSettings("Comment"))

アプリケーション構成ファイル書き換え処理

Trace.WriteLine("書換後:" & _
System.Configuration.ConfigurationSettings.AppSettings("Comment"))
------------------------------------------------------------------
'結果
'書換前:コメント
'書換後:コメント
------------------------------------------------------------------


書き換え処理直後、アプリケーション構成ファイル内を確認し書き換えが行われたことは確認しました。
アプリケーションを一度終了し、再度アプリケーションを起動すると書き換えた後の値を取得することができました。
(恐らく、アプリケーション実行中は記憶領域に退避した値を読み取っていると考えてます。)

下記HPの概要に「アプリケーション構成ファイルは実行時に値を取得できる」と記載されてますが、

http://support.microsoft.com/default.aspx?scid=kb;ja;313405

プログラム実行中に意図的にアプリケーション構成ファイルを読み込むことは不可能なのでしょうか?

ご回答宜しくお願い致します。
■No1499に返信(どっとねっとさんの記事)
> どぼんさんの『「アプリケーション構成ファイル」を編集する』を参考に、アプリケーション構成ファイルの値を変更してみました。
> しかし書き換えた直後「System.Configuration.ConfigurationSettings.AppSettings()」を使用し、値を読み取ると書き換える前の値になってます。

一度値を取得すると、次回もそれを使うようですね。

> 下記HPの概要に「アプリケーション構成ファイルは実行時に値を取得できる」と記載されてますが、
>
> http://support.microsoft.com/default.aspx?scid=kb;ja;313405
> プログラム実行中に意図的にアプリケーション構成ファイルを読み込むことは不可能なのでしょうか?

「実行時に値を取得できる」ことは確かですが、問題はどうやって値を更新させるかということでしょうか。その方法があるのか、私には分かりません。どうしても最新の値を知りたいということであれば、「「アプリケーション構成ファイル」を編集する」で紹介しているように、XmlDocumentを使って取得してはどうでしょうか?

・.NET Tips - 「アプリケーション構成ファイル」を編集する
http://dobon.net/vb/dotnet/programing/editappconfigfile.html
■No1557に返信(管理人さんの記事)
返事が遅くなってすみませんでした。
管理人さん自ら、ご回答頂けて大変光栄です!

> 一度値を取得すると、次回もそれを使うようですね。
おっしゃる通りです。
書き換えた後の値を構成ファイルから取り出したいのです。
『書き換えた値を変数に退避すればいいだけ』って言われればそれまでなのですが・・・。

> 「実行時に値を取得できる」ことは確かですが、問題はどうやって値を更新させるかということでしょうか。
これもおっしゃる通りです。
リフレッシュできる方法が存在するかどうかも調べたのですが、見つかりませんでした。

>その方法があるのか、私には分かりません。どうしても最新の値を知りたいということであれば、「「アプリケーション構成ファイル」を編集する」で紹介しているように、XmlDocumentを使って取得してはどうでしょうか?
これもおっしゃる通りでした。
グゥの音も出ません。
XmlDocumentを使用して取得します。(ぜんぜん、思いつきませんでした。)

大変参考になりました。
これからもなにかありましたら、誠に勝手ですが質問させて頂きます。(^^;
そのときは、ぜひお付き合いの程、宜しくお願いします。
どうもありがとうございました。

DOBON.NET | プログラミング道 | プログラミング掲示板