如何在不实现IConfigurationSectionHandler接口的情况下使用自定义节处理程序?

时间:2013-09-04 19:09:16

标签: c# configurationsection

我想在我的web.config文件中创建一个部分,如下所示:

<paths>
                <path>\\123.123.132.123\c$\test\folder</path>
                <path>\\123.123.132.123\c$\test\folder</path>
</paths>

我正在寻找替代方案,我想使用其中一个默认的区域处理程序,但我只能找到可以使用此配置的区域处理程序

<CustomGroup>
        <add key="key1" value="value1"/>
</CustomGroup>

(即SingleTagSectionHandlers,DictionarySectionHandlers,NameValueSectionHandler等)。

有没有办法替代&lt;添加&gt;标签为&lt;路径&GT;标签? 或者我是否必须实现IConfigurationSectionHandler接口?

1 个答案:

答案 0 :(得分:2)

  

我是否必须实现IConfigurationSectionHandler接口?

如果您使用System.Configuration.IgnoreSectionHandler,则无需使用。

的web.config

<configuration>
  <configSections>
    <section name="Paths" type="System.Configuration.IgnoreSectionHandler" />
  </configSections>
  <Paths>
    <path>\\123.123.132.123\c$\test\folder</path>
    <path>\\123.123.132.123\c$\test\folder</path>
  </Paths>

然后,您可以手动阅读web.config,无论您想要获取什么值。

public IEnumerable<string> GetPathsFromConfig()
{
  var xdoc = XDocument.Load(ConfigurationManager
    .OpenExeConfiguration(ConfigurationUserLevel.None)
    .FilePath);

  var paths = xdoc.Descendants("Paths")
    .Descendants("path")
    .Select(x => x.Value);

  return paths
}

另外,你必须Create Custom Configuration Sections Using ConfigurationSection (how-to)