ASP.NETプロファイルの構造(構成セグメントと構成セグメントプロセッサ)
4094 ワード
すべてのASP.NET構成情報はすべてWebにある.configファイルの
セグメントプロセッサの定義
構成セグメントプロセッサの定義はWebにある.configファイルの
構成セグメント設定領域の各構成セグメントには、それぞれのプロセッサ定義があります.構成セグメントプロセッサは、
開発者は、毎回1つの構成セグメントプロセッサしか定義できません.ASP.NETのデフォルトのセグメントプロセッサはMachineにあります.configファイルで予め定義されています.そしてASP.NETのWeb.configルートファイルとその他のプロファイルは自動的にMachine.configファイルで定義された構成プロセッサが派生します.カスタムプロセッサクラスを作成するには、新しい構成セグメントプロセッサを定義する必要があります.
構成セグメントの設定
構成セグメントプロセッサ定義領域の後ろには、実際の構成を含む設定領域があります.
デフォルトでは、ルートディレクトリ構成と一体化されたファイルには、
構成セグメント要素に含まれるサブ要素は、親要素のプロセッサによっても同様に処理できます.例えば、次の例に示す
Web.configファイルインスタンス
以下の例に示すWeb.configファイルは上記のコードと組み合わせて使用されます.プロセッサは、
質問の編集
構成セグメントの要素は、定義されたXML形式で存在する必要があるため、要素とパラメータはアルファベットの大文字と小文字にも敏感です.また、プロファイルは様々な方法で編集できます.
ASP.NETプロファイルのカスタムプロセッサは、カスタム要素を使用する前にプログラミングによって作成する必要があります.
プロファイルの
Webアプリケーションのパスを参照する場合、Web.configファイルの
configuration
本の要素には、構成セグメントプロセッサ定義領域と構成セグメント設定領域の2つの主要なパケットが分割されている.セグメントプロセッサの定義
構成セグメントプロセッサの定義はWebにある.configファイルの
configSections
要素.構成セグメントプロセッサが定義されると、構成を定義するためのsection
要素が含まれます.構成セグメントプロセッサ定義は、構成情報の整理を容易にするためにsectionGroup
要素にネストすることができる.通常、sectionGroup
要素は、構成に適用されるネーミングスペースを示します.例えば、すべてのASPをNETコンフィギュレーションセグメントプロセッサは、system.web
コンフィギュレーションセグメントにグループ化されたコードは、以下の通りである.
<sectionGroup
name="system.web"
type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<!-- <section /> 。 -->
</sectionGroup>
構成セグメント設定領域の各構成セグメントには、それぞれのプロセッサ定義があります.構成セグメントプロセッサは、
ConfigurationSection
を実現するインタフェースである.NET Frameworkクラス.コンフィギュレーション・セグメント・プロセッサ定義には、コンフィギュレーション・セグメント名(pages
など)と、コンフィギュレーション・セグメントでデータを処理するプロセッサ・クラス名(code
System.Web.configuration.PageSectionなど)が含まれます.次の例のコードを参照してください.
<section
name="pages"
type="System.Web.Configuration.PagesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
</section>
開発者は、毎回1つの構成セグメントプロセッサしか定義できません.ASP.NETのデフォルトのセグメントプロセッサはMachineにあります.configファイルで予め定義されています.そしてASP.NETのWeb.configルートファイルとその他のプロファイルは自動的にMachine.configファイルで定義された構成プロセッサが派生します.カスタムプロセッサクラスを作成するには、新しい構成セグメントプロセッサを定義する必要があります.
構成セグメントの設定
構成セグメントプロセッサ定義領域の後ろには、実際の構成を含む設定領域があります.
デフォルトでは、ルートディレクトリ構成と一体化されたファイルには、
configSection
領域のsectionGroup
サブ要素に割り当てられた構成セグメント要素があります.%SystemRoot%Microsoft.NETFrameworkバージョン番号CONFIGMachine.config.commentsファイルは関連コンテンツを表示します.構成セグメント要素に含まれるサブ要素は、親要素のプロセッサによっても同様に処理できます.例えば、次の例に示す
pages
要素は、pages
によってセグメントプロセッサが構成されているため、サブ要素namespaces
に対応するプロセッサは指定されていない.
<pages
buffer="true"
enableSessionState="true"
asyncTimeout="45"
<!-- 。 -->
>
<namespaces>
<add namespace="System" />
<add namespace="System.Collections" />
</namespaces>
</pages>
Web.configファイルインスタンス
以下の例に示すWeb.configファイルは上記のコードと組み合わせて使用されます.プロセッサは、
pages
要素のnamespaces
サブ要素に対して定義されていないことに注意してください.これは、System.Web.Configuration.PageSection
の構成セグメントプロセッサがpages
のすべてのサブ要素を処理するためである.
<?xml version="1.0" encoding="us-ascii"?>
<configuration>
<!-- 。 -->
<configSections>
<sectionGroup
name="system.web"
type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<section
name="pages"
type="System.Web.Configuration.PagesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
/>
<!-- <section /> 。 -->
</sectionGroup>
<!-- <sectionGroup /> <section /> 。 -->
</configSections>
<!-- 。 -->
<pages
buffer="true"
enableSessionState="true"
asyncTimeout="45"
<!-- 。 -->
>
<namespaces>
<add namespace="System" />
<add namespace="System.Collections" />
</namespaces>
</pages>
<!-- 。 -->
</configuration>
質問の編集
構成セグメントの要素は、定義されたXML形式で存在する必要があるため、要素とパラメータはアルファベットの大文字と小文字にも敏感です.また、プロファイルは様々な方法で編集できます.
ASP.NETプロファイルのカスタムプロセッサは、カスタム要素を使用する前にプログラミングによって作成する必要があります.
プロファイルの
Path
パラメータセットWebアプリケーションのパスを参照する場合、Web.configファイルの
path
パラメータセットでは、アプリケーションルートディレクトリを表す「~/」記号をパスの開始として使用できます.