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

構成ファイルの再読込

環境/言語:[VB.net 2003 / Windowsアプリ]
分類:[.NET]

きいぼーです。

基本的なことかもしれませんが、

Tipsの「アプリケーション構成ファイル」を使用して設定を読み込む
http://dobon.net/vb/dotnet/programing/appconfigfile.html

を参考に「アプリケーション構成ファイル」から設定を読み込む処理を作成しましたが、

アプリケーション起動中に、構成ファイルを書き換えた場合、
設定を読み直すためには、アプリケーションを再起動するしかないのでしょうか?

イメージとしては、ボタンを押すことで最新の構成ファイルを読み取りたいです。
出来ないのでしょうか?
きいぼーさんこんにちは。

設定ファイルを読み込む関数を用意して、
ボタン押下時にその関数を呼ぶようにすればOKだと思います。

設定を読み直すのを考慮すると、
アプリケーションファイルの内容をクラスにしておき、
読み直すときにクラスのプロパティを更新するようにすれば参照しやすいと思います。

♯そうなるとこの構成ファイルのやり方より、クラスのシリアライズ/デシリアライズの方が簡単かもしれません ^^;
SHさんこんにちは。

> 設定ファイルを読み込む関数を用意して、
> ボタン押下時にその関数を呼ぶようにすればOKだと思います。
私は以下のようなやり方でテストしていますが、
書き換えた値を表示できません、何か根本的にまちがっていますでしょうか?

FormにLabelとButtonを配置
Button.Clickイベントに
Me.Label1.Text & = System.Configuration.ConfigurationSettings.AppSettings("TestData") & vbCrLf

としてます。
Buttonを押下すると構成ファイルの内容が表示されます。

Notepadなどで、構成ファイルの値を変更して、
Buttonを押下しても、表示は変りません。

Exeを再起動したときに変更された値が表示されます。

なにか間違っていますでしょうか?
■No6308に返信(きいぼーさんの記事)
> Button.Clickイベントに
> Me.Label1.Text & = System.Configuration.ConfigurationSettings.AppSettings("TestData") & vbCrLf
>
> としてます。
ただ単に追加されてて、改行されてるから表示上変化が無いように見えるとかっていうことではないんですか?

Me.Label1.Text = System.Configuration・・・・
としてみてはいかがでしょうか?
たぬぽんさん こんにちは
> ただ単に追加されてて、改行されてるから表示上変化が無いように見えるとかっていうことではないんですか?
> Me.Label1.Text = System.Configuration・・・・
私の質問の書き方が悪かったです。
Labelは、縦長にしてますので、表示されています。
(ボタンを押すたびに追加されています)
値は表示されるのですが、変更されていないのです。

たぬぽんさんの環境では、
変更されて表示されますでしょうか?
ごめんなさい。。勘違いしてました。。

試してみたら、同じ現象がおこりました。。

ちなみに、一度ファイルを読み込んだあと、
ファイルをリネームしてみても、結果は同じでした。

一度読み込んだらメモリに格納してそうですね。。

お役に立てず申し訳ありません。。
■No6311に返信(SHさんの記事)
> ちなみに、一度ファイルを読み込んだあと、
> ファイルをリネームしてみても、結果は同じでした。
>
> 一度読み込んだらメモリに格納してそうですね。。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/Vbcon/html/vboriintroductiontoapplicationsettingstorage.asp
の真ん中くらいに書いてあったので抜粋しました。

設定ファイルの内容を直接変更することで、アプリケーションのプロパティ値を動的に変更できます。アプリケーションが次に起動されたときに、値が更新されます。

と書かれていますので、変更されたからすぐに参照できるわけではないということですね。
確かに、処理をするたびにプロパティが変更されたらやりにくいとは思うけど、使いにくいかもしれません。
以前同じような質問がありました。

「アプリケーション構成ファイル」について
http://dobon.net/vb/bbs/log3-3/1499.html

アプリケーション構成ファイルは実行時に値を取得するものであって、それ以外の目的では他の方法を使うべきでしょう。
きいぼーです。
管理人さんありがとうございます。

> アプリケーション構成ファイルは実行時に値を取得するものであって、それ以外の目的では他の方法を使うべきでしょう。
XMLとして読み込む方法を試して見ます。

ありがとう御座いました。
解決済み!

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