そのままでも単純なキー=値形式の定義できます。
カスタマイズするには、主に次の3つのクラスを使用します。
- ConfigurationSectionクラス
- ConfigurationElementクラス
- ConfigurationElementCollectionクラス
カスタマイズした設定項目のルートになるクラスです。
class NetworkConfigurationSection : ConfigurationSection { [ConfigurationProperty("LocalHost")] public NetworkConfigElement LocalHost { get { return base["LocalHost"] as NetworkConfigElement; } set { base["LocalHost"] = value; } } [ConfigurationProperty("Networks")] public NetworkConfigElementCollection Networks { get { return base["Networks"] as NetworkConfigElementCollection; } } }
ConfigurationElementクラス
設定値をもつXMLエレメントに対応するクラスです。
class NetworkConfigElement : ConfigurationElement { [ConfigurationProperty("IPAddress")] public string IPAddress { get { return base["IPAddress"] as string; } set { base["IPAddress"] = value; } } }
ConfigurationElementCollectionクラス
複数のConfigurationElementをまとめるクラスです。
class NetworkConfigElementCollection : ConfigurationElementCollection { protected override ConfigurationElement CreateNewElement() { return new NetworkConfigElement(); } protected override object GetElementKey(ConfigurationElement element) { NetworkConfigElement elm = element as NetworkConfigElement; if (null == elm) return null; return elm.IPAddress; } }
0 件のコメント:
コメントを投稿