ConfigurationManager Sınıf

Tanım

İstemci uygulamaları için yapılandırma dosyalarına erişim sağlar. Bu sınıf devralınamaz.

public ref class ConfigurationManager abstract sealed
public static class ConfigurationManager
type ConfigurationManager = class
Public Class ConfigurationManager
Devralma
ConfigurationManager

Örnekler

İlk örnekte uygulama ayarlarını okuyan, yeni bir ayar ekleyen ve mevcut bir ayarı güncelleştiren basit bir konsol uygulaması gösterilmektedir.

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  

Önceki örnekte, projenizin aşağıda gösterildiği gibi bir App.config dosyası olduğu varsayılır.

<?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>  

Aşağıdaki örnekte, veritabanından veri okumak için bağlantı dizesi nasıl kullanılacağı gösterilmektedir.

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  

Önceki örnekte, projenizin aşağıda gösterildiği gibi bir App.config olduğu varsayılır.

<?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>  

Açıklamalar

ConfigurationManager sınıfı makine, uygulama ve kullanıcı yapılandırma bilgilerine erişmenizi sağlar. Bu sınıf, kullanım dışı olan sınıfın ConfigurationSettings yerini alır. Web uygulamaları için sınıfını WebConfigurationManager kullanın.

sınıfını ConfigurationManager kullanmak için projenizin derlemeye başvurması System.Configuration gerekir. Varsayılan olarak, Konsol Uygulaması gibi bazı proje şablonları bu derlemeye başvurmaz, bu nedenle el ile başvurmanız gerekir.

Not

Uygulama yapılandırma dosyasının adı ve konumu, uygulamanın konağına bağlıdır. Daha fazla bilgi için bkz . Yapılandırma Dosyalarını kullanarak Uygulamaları Yapılandırma.

Yapılandırma bilgilerini işlemek için yerleşik System.Configuration türleri kullanabilir veya bunlardan türetebilirsiniz. Bu türleri kullanarak doğrudan yapılandırma bilgileriyle çalışabilir ve yapılandırma dosyalarını özel bilgiler içerecek şekilde genişletebilirsiniz.

sınıfı, ConfigurationManager aşağıdaki görevleri gerçekleştirmenizi sağlayan üyeler içerir:

  • Yapılandırma dosyasından bir bölüm okuyun. Yapılandırma bilgilerine erişmek için yöntemini çağırın GetSection . ve connectionStringsgibi appSettings bazı bölümler için ve ConnectionStrings sınıflarını AppSettings kullanın. Bu üyeler salt okunur işlemler gerçekleştirir, yapılandırmanın önbelleğe alınmış tek bir örneğini kullanır ve çoklu iş parçacığı algılar.

  • Yapılandırma dosyalarını bir bütün olarak okuma ve yazma. Uygulamanız, yapılandırma ayarlarını kendisi veya diğer uygulamalar ya da bilgisayarlar için yerel olarak veya uzaktan herhangi bir düzeyde okuyabilir ve yazabilir. SampleApp.exe.config gibi bir yapılandırma dosyasını açmak için sınıfı tarafından ConfigurationManager sağlanan yöntemlerden birini kullanın. Bu yöntemler, ilişkili yapılandırma dosyalarıyla çalışmak için kullanabileceğiniz yöntemleri ve özellikleri kullanıma sunan bir Configuration nesne döndürür. Yöntemler okuma veya yazma işlemleri gerçekleştirir ve bir dosya her yazıldıktan sonra yapılandırma verilerini oluşturur.

  • Yapılandırma görevlerini destekleme. Çeşitli yapılandırma görevlerini desteklemek için aşağıdaki türler kullanılır:

    Var olan yapılandırma bilgileriyle çalışmaya ek olarak, , ConfigurationElementCollection, ConfigurationPropertyve sınıfları gibi ConfigurationElementyerleşik yapılandırma türlerini genişleterek özel yapılandırma öğeleri oluşturabilir ve ConfigurationSection bunlarla çalışabilirsiniz. Yerleşik yapılandırma türünü program aracılığıyla genişletme örneği için bkz ConfigurationSection. . Öznitelik tabanlı modeli kullanan yerleşik bir yapılandırma türünün nasıl genişletildiğini gösteren bir örnek için bkz ConfigurationElement. .

Devralanlara Notlar

sınıfı, Configuration yapılandırma dosyalarını düzenlemek için programlı erişimi etkinleştirir. tarafından ConfigurationManagersağlanan yöntemlerden birini Open kullanırsınız. Bu yöntemler, temel yapılandırma dosyalarını işlemek için gerekli yöntemleri ve özellikleri sağlayan bir Configuration nesnesi döndürür. Bu dosyalara okumak veya yazmak için erişebilirsiniz.

Yapılandırma dosyalarını okumak için veya GetSectionGroup(String)kullanınGetSection(String). Okuyan kullanıcı veya işlemin aşağıdaki izinlere sahip olması gerekir:

  • Geçerli yapılandırma hiyerarşisi düzeyinde yapılandırma dosyasında okuma izni.

  • Tüm üst yapılandırma dosyalarındaki okuma izinleri.

Uygulamanızın kendi yapılandırmasına salt okunur erişime ihtiyacı varsa yöntemini kullanmanızı GetSection(String) öneririz. Bu yöntem, geçerli uygulama için önbelleğe alınmış yapılandırma değerlerine erişim sağlar ve bu da sınıftan daha iyi bir performansa Configuration sahiptir.

Yapılandırma dosyalarına yazmak için yöntemlerden Save birini kullanın. Yazan kullanıcı veya işlem aşağıdaki izinlere sahip olmalıdır:

  • Geçerli yapılandırma hiyerarşisi düzeyinde yapılandırma dosyası ve dizini üzerinde yazma izni.

  • Tüm yapılandırma dosyalarındaki okuma izinleri.

Özellikler

AppSettings

AppSettingsSection Geçerli uygulamanın varsayılan yapılandırmasına ilişkin verileri alır.

ConnectionStrings

ConnectionStringsSection Geçerli uygulamanın varsayılan yapılandırmasına ilişkin verileri alır.

Yöntemler

GetSection(String)

Geçerli uygulamanın varsayılan yapılandırması için belirtilen yapılandırma bölümünü alır.

OpenExeConfiguration(ConfigurationUserLevel)

Geçerli uygulamanın yapılandırma dosyasını nesne Configuration olarak açar.

OpenExeConfiguration(String)

Belirtilen istemci yapılandırma dosyasını nesne Configuration olarak açar.

OpenMachineConfiguration()

Geçerli bilgisayarda makine yapılandırma dosyasını nesne Configuration olarak açar.

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel)

Belirtilen istemci yapılandırma dosyasını, belirtilen dosya eşlemesini ve kullanıcı düzeyini kullanan bir Configuration nesne olarak açar.

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean)

Belirtilen istemci yapılandırma dosyasını belirtilen dosya eşleme, kullanıcı düzeyi ve ön yükleme seçeneğini kullanan bir Configuration nesne olarak açar.

OpenMappedMachineConfiguration(ConfigurationFileMap)

Makine yapılandırma dosyasını belirtilen dosya eşlemesini kullanan bir Configuration nesne olarak açar.

RefreshSection(String)

Adlandırılmış bölümü yeniler, böylece bir sonraki alındığında diskten yeniden okunur.

Şunlara uygulanır

Ayrıca bkz.