应用程序将配置数据存储在配置文件的自定义部分中。该信息在整个应用程序中使用。
现在我使用辅助静态类来提供这样的访问(省略或简化了一些代码):
[XmlRoot("webSiteSection")]
public class WebSiteConfig : IConfigurationSectionHandler
{
public static WebSiteConfig Current
{
get
{
if (_current == null)
_current = (WebSiteConfig) ConfigurationManager.GetSection("webSiteSection");
return _current;
}
}
[XmlElement("section1")]
public Section1 Section1 { get; set; }
[XmlElement("section2")]
public Section2 Section2 { get; set; }
...
public object Create(object parent, object configContext, XmlNode section)
{
var serializer = new XmlSerializer(typeof(WebSiteConfig));
return serializer.Deserialize(new XmlNodeReader(section));
}
}
然后我就这样使用它
<%: WebSiteConfig.Current.Section1.Value1 %>
<%: WebSiteConfig.Current.Section1.Value2 %>
你觉得怎么样?我发现它很有用,因为它使代码保持简单,但也很困惑,因为自 .NET Framework 2.0 以来,IConfigurationSectionHandler 已被弃用