2010年03月17日

ApplicationSettingsBaseクラス

  
構成設定ファイルを扱う場合に、ApplicationSettingsBaseクラスって、とても良くできたクラスだと思うんだけど、
UserScopedSettingAttribute ではなく、ApplicationScopedSettingAttribute を付加した場合って、書き込みが出来ないんですね。

ApplicationScoped でも、設定ファイルに書き込みがしたいって要求はないのかな?
LocalFileSettingsProvider ではなく、自分で新たなプロバイダを書けばいいのだけれど、結構面倒そうだ。

それと、バージョン番号が違うと別のフォルダに保存してしまうという動作を変更できないのは、どうなんだろう
Upgradeメソッドがあるから、大抵は別フォルダにあっても問題ないのだろうけど、自分でバージョンコントロールを行いたいときにそれを変更する手段が無いのは困る。
こちらは、独自プロバイダーを書いても対応できないようだ。

それと、保存先を決定するバージョンが、アセンブリのバージョンっていうのも戸惑った。
ApplicationScoped の項目だけレジストリに書くような拡張をしようと思って、壁に突き当たった。
だって、Application.CommonAppDataRegistryで採用しているバージョンはProductVersionなんだもの...

結局、ApplicationSettingsBaseから派生させるのではなく、 ConfigurationSection から独自のSectionクラスを派生させて、 ConfigurationManager をラップした独自のApplicationSettingsクラスを 書いたほうが良さそうな気がしてきた。


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/51973188