1

我想在我的 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 等)。

有什么方法可以将 <add> 标签替换为 <path> 标签?还是我必须实现 IConfigurationSectionHandler 接口?

4

1 回答 1

2

我必须实现 IConfigurationSectionHandler 接口吗?

如果您使用System.Configuration.IgnoreSectionHandler,则不必这样做。

网络配置

<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
}

否则,您将不得不使用 ConfigurationSection (how-to) 创建自定义配置部分

于 2013-09-04T19:16:12.783 回答