ASP.NETでアプリケーションの設定情報の保存、呼び出し等をしたい場合は、appSettingsを使う。
これには、ファイルパス、WebサービスのULR、iniファイル等の各種設定情報などを格納する。
簡単な使い方
まず、何でもないサイトにweb.configファイルを配置する。
あれば、それでいいが、なければ、[新しい項目の追加]で[Web構成ファイル]を選ぶ。
もしくは、[Webサイト]メニューの[ASP.NET構成]を使う。
すると、web.configファイルの中に、自動でappSettings項目ができていると思う。
無い場合は、下記のように書く。
<?xml version="1.0"?> <configuration> <appSettings> </appSettings> </configuratio>
この<appSettings>項目が、アプリケーション特有の設定情報等を記述する部分になる。
設定は、addで書く。
<appSettings> <add key="title" value="TestPage" /> <add key="log_path" value="/common/log/" /> </appSettings>
読みだす時は、下記のような感じ。
[VB.NET]
Me.message = System.Configuration.ConfigurationManager.AppSettings("title")
基本的な使い方は以上。
別ファイルにしてみる
このファイルを別にすることができる。
web.configを共通にして、別ファイルで設定を上書きし、チームで作る際の個々の開発環境で使ったり、開発環境と本番環境を分けたりする。
下記の場合、別ファイルをappsettings.configとした場合の例
web.config
<?xml version="1.0"?> <configuration> <appSettings file="appsettings.config"> <add key="title" value="TestPage" /> <add key="log_path" value="/common/log/" /> </appSettings> </configuratio>
appsettings.config
<?xml version="1.0"?> <appSettings> <add key="log_path" value="/gomocool/log/" /> <add key="debug" value="true" /> </appSettings>
読み込まれるファイルのルートは<appSettings>なことに注意。
ちなみに、appsettings.configの<appSettings>にfileでさらに別ファイル読み込みは、エラーになる。
多分、読み込んだ先から読み込むのはできない仕様なのかな?
<appSettings file=”appsettings2.config”>
このように、上記のappsettings.configに書いたらエラーになった。
clearとremove
あまり使わないかもしれいないが、addの他にremoveとclearがある。
これは、addの代わりにremoveを使うと、設定情報を追加でも上書きでもなく、消すことが可能。
<remove key=”log_path”/>
clearは、設定情報をすべて消す。
<clear/>
継承
設定情報は継承される。
上位のほうで設定した情報は継承されます。
つまり、Managerというディレクトリをあらたに作り、そこにDefault.aspxをあらたに置いた場合、
Manager以下すべてのデータ親のweb.configで設定した情報を引き継ぎます。
なので、設定ファイルがなくてもManager以下でもtilteからTestPageと取れます。
そして、この継承された情報は下位のディレクトリで上書き、削除等が可能です。
Manager直下にweb.configをあらたなに置き、<clear/>とするとすべて消えますし、addとし上書き、removeで個別に削除が可能。
参考:
http://msdn.microsoft.com/ja-jp/library/ms228154%28v=vs.100%29.aspx