カスタム XML ファイルから読み取った設定を格納するために静的クラスを使用するレガシー アプリケーションに取り組んでいます。ただし、モジュールのわずかなアップグレードの一環として、顧客は実行時にどのフィールドが欠落しているかを確認したいと考えています。
次の Settings.xml ファイルを検討してください。
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<configuration>
<API>
<log>
<type>09</type>
<location>C:\Test\Test.log</filename>
</log>
</API>
</configuration>
</appSettings>
設定は現在、XMLReader を使用して静的クラスに読み込まれます (以下を参照)。
using (XmlTextReader xmlReader = new XmlTextReader("Settings.xml"))
{
xmlReader.ReadToFollowing("API");
xmlReader.ReadToFollowing("log");
xmlReader.ReadToFollowing("type");
this.logtype = xmlReader.ReadElementContentAsString();
//snip...
}
この同じコードを使用して、すべての設定を読み取ります。もっと良い方法があるはずです。XML 値を対応する各プロパティに読み込み、null の場合にエラーを生成する方法はありますか?
私は静的設定クラスを次のように設計しようとしています:
public static class Settings
{
private static string logtype
public static string LogType
{
get
{ return logtype; }
set
{ logtype = value; }
}
}
そして、次のようなものを使用して値を「取得」します。
public static void initSettings()
{
appSettings.LogType = read the configuration\API\log\type field from xml;
}
プロパティコンストラクターでnull文字をチェックするだけだと確信していますが、initSettingsメソッドの「xmlから構成\API\log\typeフィールドを読み取る」部分をどのように行うのですか?