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

Aşağıdaki örnekte, bir veritabanındaki verileri okumak için bağlantı dizesinin 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

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 ConfigurationSettings sınıfının yerini alır. Web uygulamaları için WebConfigurationManager sınıfını kullanın.

ConfigurationManager sınıfını kullanmak için projenizin System.Configuration derlemesine başvurması 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ıkullanarak Uygulamaları Yapılandırma.

Yapılandırma bilgilerini işlemek için yerleşik System.Configuration türlerini kullanabilir veya 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.

ConfigurationManager sınıfı, 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 GetSection yöntemini çağırın. appSettings ve connectionStringsgibi bazı bölümler için AppSettings ve ConnectionStrings sınıflarını 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ığını 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 veya bilgisayarlar için yerel veya uzaktan herhangi bir düzeyde okuyabilir ve yazabilir. SampleApp.exe.configgibi bir yapılandırma dosyasını açmak için ConfigurationManager sınıfı tarafından 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 nesnesi 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 destekleyin. Aşağıdaki türler çeşitli yapılandırma görevlerini desteklemek için kullanılır:

    Mevcut yapılandırma bilgileriyle çalışmaya ek olarak, ConfigurationElement, ConfigurationElementCollection, ConfigurationPropertyve ConfigurationSection sınıfları gibi yerleşik yapılandırma türlerini genişleterek özel yapılandırma öğeleri oluşturabilir ve 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

Configuration sınıfı, yapılandırma dosyalarını düzenlemek için programlı erişimi etkinleştirir. ConfigurationManagertarafından sağlanan Open yöntemlerinden birini 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 GetSection(String) veya GetSectionGroup(String)kullanın. Okuyan kullanıcının 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 izinleri okuyun.

Uygulamanızın kendi yapılandırmasına salt okunur erişime ihtiyacı varsa, GetSection(String) yöntemini kullanmanızı ö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 Configuration sınıfından daha iyi performans sunar.

Yapılandırma dosyalarına yazmak için Save yöntemlerinden 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 izinleri okuyun.

Özellikler

AppSettings

Geçerli uygulamanın varsayılan yapılandırması için AppSettingsSection verilerini alır.

ConnectionStrings

Geçerli uygulamanın varsayılan yapılandırması için ConnectionStringsSection verilerini 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ı Configuration nesnesi olarak açar.

OpenExeConfiguration(String)

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

OpenMachineConfiguration()

Geçerli bilgisayardaki makine yapılandırma dosyasını Configuration nesnesi 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 nesnesi 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 nesnesi olarak açar.

OpenMappedMachineConfiguration(ConfigurationFileMap)

Makine yapılandırma dosyasını, belirtilen dosya eşlemesini kullanan bir Configuration nesnesi 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.