1. ホーム
  2. ASP.NET

ConfigurationManagerのGetSection()メソッドです。

2022-02-27 08:56:50
メソッドのプロトタイプです。
public static object GetSection(string sectionName);

ここで sectionName:設定セクションのパスと名前。

指定されたConfigurationSectionオブジェクト、またはセクションが存在しない場合、NULL。

GetSection メソッドは configSections ノードを読み取ることに注意してください。これは web.config 構成ファイル内の特別なノードで、最初のノードに配置する必要があり、その前に他の種類のノードを置くことはできません。 configSections サブノードは section と sectionGroup で、後者は前者のコレクション ノードです。

<sectionGroup name="urlRewrite">
      <section name="rules" type="Web.UI.RuleProviderHandler"/>
    </sectionGroup>



sectionGroup は複数回設定することができ、name プロパティを元に分類することができます。ここでは、ConfigurationManager.GetSection(...)メソッドを呼び出すことで行います。 メソッドの呼び出しは、クラスがIConfigurationSectionHandlerインターフェースを継承していれば、このインターフェースのCreateメソッドを起動するので、何かできるようになるのですが、そうでない場合は、このメソッドを呼び出します。以下はurlの書き換えの例です。

ノードを追加する。


ConfigurationManager.GetSectionを使って、configSectionsノードに基づいて、name="urlRewrite"を持つセクションのタイプを読み込み、Web.UI.ConfigurationManager.GetSectionを使用しています。RuleProviderHandlerを使用し、表示用に変換しています。

すでに RuleProviderHandler.cs というクラス (名前空間がたまたま Web.UI) を書いているなら、このクラスは IConfigurationSectionHandler を継承するようにしましょう。

では

xxxxxconf = (xxxxxx)ConfigurationManager.GetSection("urlRewrite/rules");



次に、Create メソッドが起動されます。

Configuration;
Xml;

namespace Web.UI
UI {
    public class RuleProviderHandler : IConfigurationSectionHandler
    UI {
        public RuleProviderHandler() { }
        public object Create(object parent, object configContext, XmlNode section)
        {
           //do something
        }
    }
}