1

次のように web.config ファイルにセクションを作成したいと思います。

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

代替手段を探しています。デフォルトのセクション ハンドラーの 1 つを使用したいのですが、この構成で動作するセクション ハンドラーしか見つかりませんでした。

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

(これは、SingleTagSectionHandlers、DictionarySectionHandlers、NameValueSectionHandler などになります)。

< add> タグを < path> タグに置き換える方法はありますか? または、IConfigurationSectionHandler インターフェイスを実装する必要がありますか?

4

1 に答える 1

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
}

それ以外の場合は、ConfigurationSection (how-to) を使用してカスタム構成セクションを作成する必要があります。

于 2013-09-04T19:16:12.783 に答える