string world = AppSettings["World"];
xps2のコードの中に、設定ファイルを読んでいると思われる、
string apps = AppSettings["MonoApplications"]; string appConfigDir = AppSettings["MonoApplicationsConfigDir"]; string appConfigFile = AppSettings["MonoApplicationsConfigFile"]; string rootDir = AppSettings["MonoServerRootDir"];
といった記述があるんだけど、どこで定義されているかわからない。
System.Configuration名前空間を参照に追加して、
string World = ConfigurationManager.AppSetting["Hello"];
とか出来るけど、xsp2の場合は、そのまま「AppSettings["Hello"]」って書いてある。どうやってるんだ。
public static int Main( string[] args ) { AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler( CurrentDomain_UnhandledException ); SecurityConfiguration security = new SecurityConfiguration(); bool nonstop = false; bool verbose = false; Trace.Listeners.Add( new TextWriterTraceListener( Console.Out ) ); string apps = AppSettings["MonoApplications"]; string appConfigDir = AppSettings["MonoApplicationsConfigDir"]; string appConfigFile = AppSettings["MonoApplicationsConfigFile"]; string rootDir = AppSettings["MonoServerRootDir"]; object oport; // 省略
追記
あった。ここでのAppSettingsはSystem.Configuration.ConfigurationManage*1のAppSettingsプロパティじゃなくて、System.Collection.SpecializedのNameValueCollectionだった。
いやAppSettingsプロパティはNameValueCollectionなんだけど、.NETのバージョンによってConfigurationManagerかConfigurationSettingsか勝手に取ってくるように書き換えてあった、みたいな表現が正しいのか。
static NameValueCollection AppSettings { get { #if NET_2_0 return ConfigurationManager.AppSettings; #else return ConfigurationSettings.AppSettings; #endif } }
んーこうやって書くだけでいいのか?書いてみよう。
追記2
書いてみた。簡単。
hoge.exe.config ファイルから設定を読み込む - INOHILOG
*1:.NET 1.xではSystem.Configuration.ConfigurationSettings