ConfigurationManager ConfigurationManager ConfigurationManager ConfigurationManager Class

定義

クライアント アプリケーションの構成ファイルにアクセスできるようにします。Provides access to configuration files for client applications. このクラスは継承できません。This class cannot be inherited.

public ref class ConfigurationManager abstract sealed
public static class ConfigurationManager
type ConfigurationManager = class
Public Class ConfigurationManager
継承
ConfigurationManagerConfigurationManagerConfigurationManagerConfigurationManager

最初の例は、単純なコンソール アプリケーションをアプリケーションの設定を読み取り、という新しい設定を追加します。 既存の設定を更新します。The first example shows a simple console application that reads application settings, adds a new setting, and updates an existing setting.

using System;  
using System.Configuration;  

namespace ConsoleApplication1  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            ReadAllSettings();  
            ReadSetting("Setting1");  
            ReadSetting("NotValid");  
            AddUpdateAppSettings("NewSetting", "May 7, 2014");  
            AddUpdateAppSettings("Setting1", "May 8, 2014");  
            ReadAllSettings();  
        }  

        static void ReadAllSettings()  
        {  
            try  
            {  
                var appSettings = ConfigurationManager.AppSettings;  

                if (appSettings.Count == 0)  
                {  
                    Console.WriteLine("AppSettings is empty.");  
                }  
                else  
                {  
                    foreach (var key in appSettings.AllKeys)  
                    {  
                        Console.WriteLine("Key: {0} Value: {1}", key, appSettings[key]);  
                    }  
                }  
            }  
            catch (ConfigurationErrorsException)  
            {  
                Console.WriteLine("Error reading app settings");  
            }  
        }  

        static void ReadSetting(string key)  
        {  
            try  
            {  
                var appSettings = ConfigurationManager.AppSettings;  
                string result = appSettings[key] ?? "Not Found";  
                Console.WriteLine(result);  
            }  
            catch (ConfigurationErrorsException)  
            {  
                Console.WriteLine("Error reading app settings");  
            }  
        }  

        static void AddUpdateAppSettings(string key, string value)  
        {  
            try  
            {  
                var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  
                var settings = configFile.AppSettings.Settings;  
                if (settings[key] == null)  
                {  
                    settings.Add(key, value);  
                }  
                else  
                {  
                    settings[key].Value = value;  
                }  
                configFile.Save(ConfigurationSaveMode.Modified);  
                ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);  
            }  
            catch (ConfigurationErrorsException)  
            {  
                Console.WriteLine("Error writing app settings");  
            }  
        }  
    }  
}  
Imports System.Configuration  
Module Module1  

    Sub Main()  
        ReadAllSettings()  
        ReadSetting("Setting1")  
        ReadSetting("NotValid")  
        AddUpdateAppSettings("NewSetting", "May 7, 2014")  
        AddUpdateAppSettings("Setting1", "May 8, 2014")  
        ReadAllSettings()  
    End Sub  

    Sub ReadAllSettings()  
        Try  
            Dim appSettings = ConfigurationManager.AppSettings  

            If appSettings.Count = 0 Then  
                Console.WriteLine("AppSettings is empty.")  
            Else  
                For Each key As String In appSettings.AllKeys  
                    Console.WriteLine("Key: {0} Value: {1}", key, appSettings(key))  
                Next  
            End If  
        Catch e As ConfigurationErrorsException  
            Console.WriteLine("Error reading app settings")  
        End Try  
    End Sub  

    Sub ReadSetting(key As String)  
        Try  
            Dim appSettings = ConfigurationManager.AppSettings  
            Dim result As String = appSettings(key)  
            If IsNothing(result) Then  
                result = "Not found"  
            End If  
            Console.WriteLine(result)  
        Catch e As ConfigurationErrorsException  
            Console.WriteLine("Error reading app settings")  
        End Try  
    End Sub  

    Sub AddUpdateAppSettings(key As String, value As String)  
        Try  
            Dim configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)  
            Dim settings = configFile.AppSettings.Settings  
            If IsNothing(settings(key)) Then  
                settings.Add(key, value)  
            Else  
                settings(key).Value = value  
            End If  
            configFile.Save(ConfigurationSaveMode.Modified)  
            ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name)  
        Catch e As ConfigurationErrorsException  
            Console.WriteLine("Error writing app settings")  
        End Try  
    End Sub  

End Module  

前の例では、プロジェクトが次に示すように、App.config ファイルを前提としています。The previous example assumes your project has an App.config file as shown below.

<?xml version="1.0" encoding="utf-8" ?>  
<configuration>  
    <startup>   
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />  
    </startup>  
  <appSettings>  
    <add key="Setting1" value="May 5, 2014"/>  
    <add key="Setting2" value="May 6, 2014"/>  
  </appSettings>  
</configuration>  

次の例では、データベースからデータを読み取る接続文字列を使用する方法を示します。The following example shows how to use a connection string to read data from a database.

using System;  
using System.Configuration;  
using System.Data.SqlClient;  

namespace ConsoleApplication1  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            ReadProducts();  
        }  

        static void ReadProducts()  
        {  
            var connectionString = ConfigurationManager.ConnectionStrings["WingtipToys"].ConnectionString;  
            string queryString = "SELECT Id, ProductName FROM dbo.Products;";  
            using (var connection = new SqlConnection(connectionString))  
            {  
                var command = new SqlCommand(queryString, connection);  
                connection.Open();  
                using (var reader = command.ExecuteReader())  
                {  
                    while (reader.Read())  
                    {  
                        Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));  
                    }  
                }  
            }  
        }  
    }  
}  
Imports System.Configuration  
Imports System.Data.SqlClient  
Module Module1  

    Sub Main()  
        ReadProducts()  
    End Sub  

    Sub ReadProducts()  
        Dim connectionString = ConfigurationManager.ConnectionStrings("WingtipToys").ConnectionString  
        Dim queryString = "SELECT Id, ProductName FROM dbo.Products;"  
        Using connection As New SqlConnection(connectionString)  
            Dim command = New SqlCommand(queryString, connection)  
            connection.Open()  

            Using reader As SqlDataReader = command.ExecuteReader()  
                While reader.Read()  
                    Console.WriteLine(String.Format("{0}, {1}", reader(0), reader(1)))  
                End While  
            End Using  
        End Using  
    End Sub  

End Module  

前の例では、プロジェクトは、次に示すように、App.config が前提としています。The previous example assumes your project has an App.config as shown below.

<?xml version="1.0" encoding="utf-8" ?>  
<configuration>  
    <startup>   
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />  
    </startup>  
    <connectionStrings>  
      <add name="WingtipToys" connectionString="Data Source=(LocalDB)\v11.0;Initial Catalog=WingtipToys;Integrated Security=True;Pooling=False" />  
    </connectionStrings>  
</configuration>  

注釈

ConfigurationManagerクラスによってアクセス マシン、アプリケーション、およびユーザーの構成情報をできるようにします。The ConfigurationManager class enables you to access machine, application, and user configuration information. このクラスの置換、ConfigurationSettingsクラスは、非推奨です。This class replaces the ConfigurationSettings class, which is deprecated. Web アプリケーションを使用して、WebConfigurationManagerクラス。For web applications, use the WebConfigurationManager class.

使用する、ConfigurationManagerクラス、プロジェクトを参照する必要があります、System.Configurationアセンブリ。To use the ConfigurationManager class, your project must reference the System.Configuration assembly. 既定では、コンソール アプリケーションのように、一部のプロジェクト テンプレートはこのアセンブリを参照しないため、手動で参照する必要があります。By default, some project templates, like Console Application, do not reference this assembly so you must manually reference it.

注意

アプリケーション構成ファイルの場所と名前は、アプリケーションのホストに依存します。The name and location of the application configuration file depend on the application's host. 詳細については、次を参照してくださいNIB:。アプリケーション構成ファイルします。For more information, see NIB: Application Configuration Files.

組み込みを使用するSystem.Configuration型、または構成情報を処理するためにそこから派生します。You can use the built-in System.Configuration types or derive from them to handle configuration information. これらの型を使用すると、構成情報を直接操作することができ、構成ファイルに含めるカスタム情報を拡張することができます。By using these types, you can work directly with configuration information and you can extend configuration files to include custom information.

ConfigurationManagerクラスには、次のタスクを実行するためのメンバーが含まれています。The ConfigurationManager class includes members that enable you to perform the following tasks:

  • 構成ファイルからセクションを読み取ります。Read a section from a configuration file. 構成情報にアクセスするには、呼び出し、GetSectionメソッド。To access configuration information, call the GetSection method. などのいくつかのセクションのappSettingsconnectionStringsを使用して、AppSettingsConnectionStringsクラス。For some sections such as appSettings and connectionStrings, use the AppSettings and ConnectionStrings classes. これらのメンバーが読み取り専用の操作を実行し、構成の 1 つのキャッシュされたインスタンスを使用して、およびマルチ スレッドに注意してください。These members perform read-only operations, use a single cached instance of the configuration, and are multithread aware.

  • 全体としての構成ファイルを読み書きします。Read and write configuration files as a whole. アプリケーションでは、読み取るでき、構成設定書き込む任意のレベルでは、自体やその他のアプリケーションやコンピューターのローカルまたはリモートですることができます。Your application can read and write configuration settings at any level, for itself or for other applications or computers, locally or remotely. によって提供されるメソッドのいずれかを使用して、ConfigurationManagerクラス SampleApp.exe.config などの構成ファイルを開きます。これらのメソッドを返す、Configurationメソッドと関連付けられている構成ファイルを操作するために使用できるプロパティを公開するオブジェクト。Use one of the methods provided by the ConfigurationManager class to open a configuration file such as SampleApp.exe.config. These methods return a Configuration object that in turn exposes methods and properties you can use to work with the associated configuration files. メソッドは、読み取りを実行または書き込み操作と、ファイルが書き込まれるたびに、構成データを作成します。The methods perform read or write operations and create the configuration data every time that a file is written.

  • 構成タスクをサポートします。Support configuration tasks. 次の種類は、さまざまな構成タスクをサポートするために使用されます。The following types are used to support various configuration tasks:

    既存の構成情報を扱うだけでなくを作成およびなど、組み込みの構成の種類を拡張することによって、カスタム構成要素を使用、 ConfigurationElementConfigurationElementCollectionConfigurationProperty、およびConfigurationSectionクラス。In addition to working with existing configuration information, you can create and work with custom configuration elements by extending the built-in configuration types such as the ConfigurationElement, ConfigurationElementCollection, ConfigurationProperty, and ConfigurationSection classes. 組み込みの構成の種類をプログラムで拡張する方法の例は、次を参照してください。ConfigurationSectionします。For an example of how to extend a built-in configuration type programmatically, see ConfigurationSection. 属性に基づくモデルを使用する組み込みの構成の種類を拡張する方法の例は、次を参照してください。ConfigurationElementします。For an example of how to extend a built-in configuration type that uses the attribute-based model, see ConfigurationElement.

注意 (継承者)

Configurationクラスは、構成ファイルを編集するためのプログラムによるアクセスを使用できます。The Configuration class enables programmatic access for editing configuration files. によって提供されるオープン メソッドのいずれかを使用するConfigurationManagerします。You use one of the Open methods provided by ConfigurationManager. これらのメソッドを返す、Configurationオブジェクトで、さらに必要なメソッドと基になる構成ファイルを処理するためにプロパティを提供します。These methods return a Configuration object, which in turn provides the required methods and properties to handle the underlying configuration files. これらのファイルの読み取りまたは書き込みにアクセスできます。You can access these files for reading or writing.

構成ファイルを読み取るには使用GetSection(String)またはGetSectionGroup(String)構成情報を読み取る。To read the configuration files, use GetSection(String) or GetSectionGroup(String) to read configuration information. ユーザーまたはプロセスを読み取るには、次のアクセス許可がある場合があります。The user or process that reads must have the following permissions: の現在の構成階層のレベルの構成ファイル読み取り権限。- Read permission on the configuration file at the current configuration hierarchy level.

-ファイルを読み取るすべての親のアクセス許可の構成。- Read permissions on all the parent configuration files.

使用することをお勧め、アプリケーションでは、独自の構成に読み取り専用アクセスを必要とする場合、GetSection(String)メソッド。If your application needs read-only access to its own configuration, we recommend that you use the GetSection(String) method. このメソッドは、アクセスを提供しますが、現在のアプリケーションのキャッシュされた構成値によりも優れたパフォーマンス、Configurationクラス。This method provides access to the cached configuration values for the current application, which has better performance than the Configuration class.

構成ファイルに書き込むのいずれかの操作を使用して、Saveメソッド。To write to the configuration files, use one of the Save methods. ユーザーまたはプロセスに書き込むには、次のアクセス許可がある場合があります。The user or process that writes must have the following permissions: -構成ファイルと現在の構成階層のレベルのディレクトリに対する権限を作成します。- Write permission on the configuration file and directory at the current configuration hierarchy level.

-すべての構成ファイルのアクセス許可を読み取り。- Read permissions on all the configuration files.

プロパティ

AppSettings AppSettings AppSettings AppSettings

現在のアプリケーションの既定構成の AppSettingsSection データを取得します。Gets the AppSettingsSection data for the current application's default configuration.

ConnectionStrings ConnectionStrings ConnectionStrings ConnectionStrings

現在のアプリケーションの既定構成の ConnectionStringsSection データを取得します。Gets the ConnectionStringsSection data for the current application's default configuration.

メソッド

GetSection(String) GetSection(String) GetSection(String) GetSection(String)

現在のアプリケーションの既定構成の、指定した構成セクションを取得します。Retrieves a specified configuration section for the current application's default configuration.

OpenExeConfiguration(ConfigurationUserLevel) OpenExeConfiguration(ConfigurationUserLevel) OpenExeConfiguration(ConfigurationUserLevel) OpenExeConfiguration(ConfigurationUserLevel)

現在のアプリケーションの構成ファイルを Configuration オブジェクトとして開きます。Opens the configuration file for the current application as a Configuration object.

OpenExeConfiguration(String) OpenExeConfiguration(String) OpenExeConfiguration(String) OpenExeConfiguration(String)

指定したクライアント構成ファイルを Configuration オブジェクトとして開きます。Opens the specified client configuration file as a Configuration object.

OpenMachineConfiguration() OpenMachineConfiguration() OpenMachineConfiguration() OpenMachineConfiguration()

現在のコンピューターのマシン構成ファイルを Configuration オブジェクトとして開きます。Opens the machine configuration file on the current computer as a Configuration object.

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel)

指定したクライアント構成ファイルを、指定したファイル マップとユーザー レベルを使用する Configuration オブジェクトとして開きます。Opens the specified client configuration file as a Configuration object that uses the specified file mapping and user level.

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean)

指定したクライアント構成ファイルを、指定したファイル マップ、ユーザー レベル、およびプリロード オプションを使用する Configuration オブジェクトとして開きます。Opens the specified client configuration file as a Configuration object that uses the specified file mapping, user level, and preload option.

OpenMappedMachineConfiguration(ConfigurationFileMap) OpenMappedMachineConfiguration(ConfigurationFileMap) OpenMappedMachineConfiguration(ConfigurationFileMap) OpenMappedMachineConfiguration(ConfigurationFileMap)

マシン構成ファイルを、指定したファイル マップを使用する Configuration オブジェクトとして開きます。Opens the machine configuration file as a Configuration object that uses the specified file mapping.

RefreshSection(String) RefreshSection(String) RefreshSection(String) RefreshSection(String)

名前付きセクションを次回取得するときに、ディスクから再読み取りするように、名前付きセクションを更新します。Refreshes the named section so the next time that it is retrieved it will be re-read from disk.

適用対象

こちらもご覧ください