ConfigurationManager Osztály

Definíció

Hozzáférést biztosít az ügyfélalkalmazások konfigurációs fájljaihoz. Ez az osztály nem örökölhető.

public ref class ConfigurationManager abstract sealed
public static class ConfigurationManager
type ConfigurationManager = class
Public Class ConfigurationManager
Öröklődés
ConfigurationManager

Példák

Az első példa egy egyszerű konzolalkalmazást mutat be, amely beolvassa az alkalmazásbeállításokat, hozzáad egy új beállítást, és frissít egy meglévő beállítást.

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

Az alábbi példa bemutatja, hogyan lehet kapcsolati karakterlánc adatokat olvasni egy adatbázisból.

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

Megjegyzések

Az ConfigurationManager osztály lehetővé teszi a gép, az alkalmazás és a felhasználó konfigurációs adatainak elérését. Ez az osztály lecseréli az ConfigurationSettings elavult osztályt. Webalkalmazások esetén használja az osztályt WebConfigurationManager .

Az osztály használatához a ConfigurationManager projektnek hivatkoznia kell a szerelvényre System.Configuration . Alapértelmezés szerint egyes projektsablonok, például a Konzolalkalmazás, nem hivatkoznak erre a szerelvényre, ezért manuálisan kell hivatkoznia rá.

Note

Az alkalmazáskonfigurációs fájl neve és helye az alkalmazás gazdagépétől függ. További információ: Alkalmazások konfigurálása konfigurációs fájlok használatával.

A konfigurációs információk kezeléséhez használhatja a beépített System.Configuration típusokat, vagy ezekből származtathatja őket. Ezekkel a típusokkal közvetlenül dolgozhat a konfigurációs adatokkal, és kiterjesztheti a konfigurációs fájlokat az egyéni adatokra.

Az ConfigurationManager osztály olyan tagokat tartalmaz, amelyek lehetővé teszik a következő feladatok elvégzését:

  • Szakasz beolvasása konfigurációs fájlból. A konfigurációs információk eléréséhez hívja meg a metódust GetSection . Egyes szakaszokban, például appSettings ésconnectionStrings, használja az és AppSettings az ConnectionStrings osztályokat. Ezek a tagok írásvédett műveleteket végeznek, a konfiguráció egyetlen gyorsítótárazott példányát használják, és többszálúak.

  • A konfigurációs fájlok teljes olvasása és írása. Az alkalmazás képes a konfigurációs beállítások olvasására és írására bármilyen szinten, önmagában vagy más alkalmazásokban vagy számítógépeken, helyileg vagy távolról. Az osztály által ConfigurationManager biztosított módszerek egyikével nyisson meg egy konfigurációs fájlt, például SampleApp.exe.config. Ezek a metódusok egy Configuration objektumot ad vissza, amely a társított konfigurációs fájlok használatához használható metódusokat és tulajdonságokat teszi elérhetővé. A metódusok olvasási vagy írási műveleteket végeznek, és minden alkalommal létrehozzák a konfigurációs adatokat, amikor egy fájlt írnak.

  • Konfigurációs feladatok támogatása. A különböző konfigurációs feladatok támogatására a következő típusok használhatók:

    A meglévő konfigurációs adatokon kívül egyéni konfigurációs elemeket is létrehozhat és használhat a beépített konfigurációs típusok, például a ConfigurationElement, ConfigurationElementCollection, ConfigurationPropertyés ConfigurationSection az osztályok kibővítésével. Egy beépített konfigurációtípus programozott kiterjesztésére példa: .a0> Az attribútumalapú modellt ConfigurationElementhasználó beépített konfigurációs típus kiterjesztésére példa: .

Megjegyzések az öröklőkhöz

Az Configuration osztály programozott hozzáférést tesz lehetővé a konfigurációs fájlok szerkesztéséhez. A > által megadott módszerek egyikét használja. Ezek a metódusok egy objektumot Configuration ad vissza, amely biztosítja az alapul szolgáló konfigurációs fájlok kezeléséhez szükséges módszereket és tulajdonságokat. Ezeket a fájlokat olvasáshoz vagy íráshoz érheti el.

A konfigurációs fájlok olvasásához használja GetSection(String) vagy GetSectionGroup(String). Az olvasó felhasználónak vagy folyamatnak a következő engedélyekkel kell rendelkeznie:

  • Olvasási engedély a konfigurációs fájlon az aktuális konfigurációs hierarchia szintjén.

  • Olvasási engedélyek az összes szülőkonfigurációs fájlon.

Ha az alkalmazásnak írásvédett hozzáférésre van szüksége a saját konfigurációjához, javasoljuk, hogy használja a GetSection(String) módszert. Ez a módszer hozzáférést biztosít az aktuális alkalmazás gyorsítótárazott konfigurációs értékeihez, amelyek jobb teljesítményt nyújtanak, mint az Configuration osztály.

A konfigurációs fájlokba való íráshoz használja az egyik metódust Save . Az írást végző felhasználónak vagy folyamatnak a következő engedélyekkel kell rendelkeznie:

  • Írási engedély a konfigurációs fájlra és a könyvtárra az aktuális konfigurációs hierarchia szintjén.

  • Olvasási engedélyek az összes konfigurációs fájlon.

Tulajdonságok

Name Description
AppSettings

Lekéri az AppSettingsSection aktuális alkalmazás alapértelmezett konfigurációjának adatait.

ConnectionStrings

Lekéri az ConnectionStringsSection aktuális alkalmazás alapértelmezett konfigurációjának adatait.

Metódusok

Name Description
GetSection(String)

Lekéri az aktuális alkalmazás alapértelmezett konfigurációjának megadott konfigurációs szakaszát.

OpenExeConfiguration(ConfigurationUserLevel)

Megnyitja az aktuális alkalmazás konfigurációs fájlját objektumként Configuration .

OpenExeConfiguration(String)

Megnyitja a megadott ügyfélkonfigurációs fájlt objektumként Configuration .

OpenMachineConfiguration()

Megnyitja a gép konfigurációs fájlját az aktuális számítógépen objektumként Configuration .

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean)

A megadott ügyfélkonfigurációs fájlt olyan objektumként Configuration nyitja meg, amely a megadott fájlleképezést, felhasználói szintet és előtöltési lehetőséget használja.

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel)

A megadott ügyfélkonfigurációs fájlt a megadott fájlleképezést és felhasználói szintet használó objektumként Configuration nyitja meg.

OpenMappedMachineConfiguration(ConfigurationFileMap)

A gép konfigurációs fájlját a megadott fájlleképezést Configuration használó objektumként nyitja meg.

RefreshSection(String)

Frissíti az elnevezett szakaszt, hogy a következő lekéréskor újraolvashassa a lemezről.

A következőre érvényes:

Lásd még