WebConfigurationManager.GetSection メソッド

定義

現在の Web アプリケーションの既定の構成ファイルの、指定した構成セクションを取得します。

オーバーロード

GetSection(String)

現在の Web アプリケーションの構成ファイルの、指定した構成セクションを取得します。

GetSection(String, String)

指定された場所にある Web アプリケーションの構成ファイルの、指定した構成セクションを取得します。

GetSection(String)

現在の Web アプリケーションの構成ファイルの、指定した構成セクションを取得します。

C#
public static object GetSection (string sectionName);

パラメーター

sectionName
String

構成セクション名。

戻り値

Object

指定した構成セクション オブジェクト。指定したセクションが存在しない場合は nullGetSection(String) を実行時の操作として使用する場合は、セキュリティ上の制限に注意してください。 たとえば、実行時には変更のためにセクションにアクセスできない場合があります。

例外

有効な構成ファイルを読み込むことができませんでした。

このセクションの例では、メソッドを使用して構成情報にアクセスする方法を GetSection 示します。

次の例は、Web アプリケーションまたはコンソール アプリケーションからアクセスできるセクションを示しています。

注意

この例では、メソッドを使用 GetWebApplicationSection して構成ファイルからオブジェクトを ConfigurationSection 取得する方法を示します。

C#

// Show how to use the GetSection(string). 
// to access the connectionStrings section.
static void GetConnectionStringsSection()
{

    // Get the connectionStrings section.
    ConnectionStringsSection connectionStringsSection =
        WebConfigurationManager.GetSection("connectionStrings")
        as ConnectionStringsSection;

    // Get the connectionStrings key,value pairs collection.
    ConnectionStringSettingsCollection connectionStrings =
        connectionStringsSection.ConnectionStrings;
   
    // Get the collection enumerator.
    IEnumerator connectionStringsEnum =
        connectionStrings.GetEnumerator();

    // Loop through the collection and 
    // display the connectionStrings key, value pairs.
    int i = 0;
    Console.WriteLine("[Display the connectionStrings]");
    while (connectionStringsEnum.MoveNext())
    {
        string name = connectionStrings[i].Name;
        Console.WriteLine("Name: {0} Value: {1}",
        name, connectionStrings[name]);
        i += 1;
    }

    Console.WriteLine();
}

注釈

Web アプリケーション内から呼び出された場合 GetSection は、Web アプリケーション構成階層に従って、システムによって選択された構成ファイルからセクションを取得します。

注意事項

アプリケーションで HTTP とは異なるプロトコルを使用する場合、 GetSection セクション名とそのパラメーター リスト内のパスの両方を受け取るオーバーロードが使用されます。 構成階層レベルに関する前提をシステムで行うことができないため、構成ファイルのパスを指定する必要があります。 セクション名のみを受け取るオーバーロードを使用 GetSection すると、システムは常にアプリケーション レベルで構成設定を返そうとします。 ただし、指定したパスが現在のアプリケーションの外部にある場合、パスを受け取るオーバーロードは、現在実行中のアプリケーションのアプリケーション レベルの構成設定も返されることに注意してください。

クライアント アプリケーション内から呼び出 GetSection す場合があります。 この場合、クライアント構成階層に従って、システムによって選択された構成ファイルから既定のセクションが取得されます。 通常、これは、マップされた構成がない限り、Machine.config ファイルです。 マッピング構成ファイルについては、次に説明するマッピング方法を参照してください。

注意

この GetSection メソッドは、アプリケーションが実行される階層レベルで構成ファイルのセクションを操作する実行時メソッドです。 実行時以外の操作の場合は、代わりに使用 GetSection します。 このメソッドは、構成ファイルを開くオーバーロードされたメソッドの 1 つを使用して取得する構成ファイル OpenWebConfigurationの指定されたセクションで動作します。

注意 (継承者)

戻り値は、使用する前に予想される構成の種類にキャストする必要があります。 キャスト例外の可能性を回避するには、C# の演算子のような条件付きキャスト操作を使用する as 必要があります。

こちらもご覧ください

適用対象

.NET Framework 4.8 およびその他のバージョン
製品 バージョン
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8

GetSection(String, String)

指定された場所にある Web アプリケーションの構成ファイルの、指定した構成セクションを取得します。

C#
public static object GetSection (string sectionName, string path);

パラメーター

sectionName
String

構成セクション名。

path
String

仮想構成ファイル パス。

戻り値

Object

指定した構成セクション オブジェクト。指定したセクションが存在しない場合は nullGetSection(String, String) を実行時の操作として使用するには、セキュリティ上の制限があることに注意してください。 たとえば、実行時に変更のためにセクションにアクセスできない場合があります。

例外

メソッドが Web アプリケーション以外から呼び出されています。

有効な構成ファイルを読み込むことができませんでした。

次の例は、メソッドを使用して構成情報にアクセスする方法を GetSection 示しています。

注意

この例では、メソッドを使用 GetSection して、指定した構成ファイルからオブジェクトを ConfigurationSection 取得する方法を示します。

C#

// Show the use of GetSection(string, string). 
// to access the connectionStrings section.
 static void GetSection2()
 {

     try
     {
         // Get the connectionStrings section for the 
         // specified Web app. This GetSection overload
         // can olny be called from within a Web application.
         ConnectionStringsSection connectionStringsSection =
             WebConfigurationManager.GetSection("connectionStrings",
             "/configTest") as ConnectionStringsSection;

         // Get the connectionStrings key,value pairs collection
         ConnectionStringSettingsCollection connectionStrings =
             connectionStringsSection.ConnectionStrings;

         // Get the collection enumerator.
         IEnumerator connectionStringsEnum =
             connectionStrings.GetEnumerator();

         // Loop through the collection and 
         // display the connectionStrings key, value pairs.
         int i = 0;
         Console.WriteLine("[Display connectionStrings]");
         while (connectionStringsEnum.MoveNext())
         {
             string name = connectionStrings[i].Name;
             Console.WriteLine("Name: {0} Value: {1}",
             name, connectionStrings[name]);
             i += 1;
         }
         Console.WriteLine();
     }

     catch (InvalidOperationException e)
     {
         string errorMsg = e.ToString();
         Console.WriteLine(errorMsg);
     }
 }

注釈

Web アプリケーション内から呼び出された場合 GetSection は、構成階層内の指定したパスで定義された構成ファイルからセクションを取得します。

注意事項

アプリケーションで HTTP とは異なるプロトコルを使用する場合、 GetSection セクション名とそのパラメーター リスト内のパスの両方を受け取るオーバーロードが使用されます。 構成階層レベルに関する前提をシステムで行うことができないため、構成ファイルのパスを指定する必要があります。 セクション名のみを受け取るオーバーロードを使用 GetSection すると、システムは常にアプリケーション レベルで構成設定を返そうとします。 ただし、指定したパスが現在のアプリケーションの外部にある場合、パスを受け取るオーバーロードは、現在実行中のアプリケーションのアプリケーション レベルの構成設定も返されることに注意してください。

このメソッドは、クライアント アプリケーション内から呼び出すことはできません。

現在の Web アプリケーション ディレクトリ レベルにある構成ファイルから構成セクションを取得する場合は、このメソッドを GetSection 使用します。

注意

この GetSection メソッドは、アプリケーションが実行される階層レベルの構成ファイルのセクションで動作する実行時メソッドです。 実行時以外の操作の場合は、代わりに使用 GetSection します。 このメソッドは、構成ファイルのいずれかの方法を使用して取得する構成ファイルの指定されたセクションで open 動作します。

注意 (継承者)

戻り値は、使用する前に予想される構成の種類にキャストする必要があります。 キャスト例外の可能性を回避するには、C# の演算子のような条件付きキャスト操作を使用する as 必要があります。

こちらもご覧ください

適用対象

.NET Framework 4.8 およびその他のバージョン
製品 バージョン
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8