Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Configuration-Klasse

 

Veröffentlicht: Oktober 2016

Stellt eine Konfigurationsdatei, die auf einem bestimmten Computer, Anwendung oder Ressource anwendbar ist. Diese Klasse kann nicht vererbt werden.

Namespace:   System.Configuration
Assembly:  System.Configuration (in System.Configuration.dll)

System.Object
  System.Configuration.Configuration

public sealed class Configuration

NameBeschreibung
System_CAPS_pubpropertyAppSettings

Ruft die AppSettingsSection Objekt Konfigurationsabschnitt, der für diese gilt Configuration Objekt.

System_CAPS_pubpropertyAssemblyStringTransformer

Gibt ein Funktionsdelegat, der verwendet wird, um Assemblyzeichenfolgen in Konfigurationsdateien zu transformieren.

System_CAPS_pubpropertyConnectionStrings

Ruft eine ConnectionStringsSection Konfigurationsabschnitt Objekts an, dies gilt Configuration Objekt.

System_CAPS_pubpropertyEvaluationContext

Ruft das ContextInformation-Objekt für das Configuration-Objekt ab.

System_CAPS_pubpropertyFilePath

Ruft den physischen Pfad der Konfigurationsdatei, die durch diesen dargestellten Configuration Objekt.

System_CAPS_pubpropertyHasFile

Ruft einen Wert, der angibt, ob eine Datei vorhanden, für die Ressource, die durch diesen dargestellten ist Configuration Objekt.

System_CAPS_pubpropertyLocations

Ruft die definierten innerhalb dieser Speicherorte Configuration Objekt.

System_CAPS_pubpropertyNamespaceDeclared

Ruft ab oder legt einen Wert, der angibt, ob die Konfigurationsdatei einen XML-Namespace verfügt.

System_CAPS_pubpropertyRootSectionGroup

Ruft den Stamm ab ConfigurationSectionGroup für dieses Configuration Objekt.

System_CAPS_pubpropertySectionGroups

Ruft eine Auflistung der von dieser Konfiguration definierten Abschnittsgruppen ab.

System_CAPS_pubpropertySections

Ruft eine Auflistung der von diesem definierten Abschnitte Configuration Objekt.

System_CAPS_pubpropertyTargetFramework

Gibt die Zielversion von .NET Framework, eine Version früher als die derzeitige als Ziel ausgewählt wird.

System_CAPS_pubpropertyTypeStringTransformer

Gibt ein Funktionsdelegat, der verwendet wird, um Typzeichenfolgen in Konfigurationsdateien zu transformieren.

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von „Object“.)

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion.(Geerbt von „Object“.)

System_CAPS_pubmethodGetSection(String)

Gibt das angegebene ConfigurationSection-Objekt zurück.

System_CAPS_pubmethodGetSectionGroup(String)

Ruft den angegebenen ConfigurationSectionGroup Objekt.

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodSave()

Schreibt die Konfigurationseinstellungen in dieser enthaltenen Configuration Objekt, das den aktuellen XML-Konfigurationsdatei.

System_CAPS_pubmethodSave(ConfigurationSaveMode)

Schreibt die Konfigurationseinstellungen in dieser enthaltenen Configuration Objekt, das den aktuellen XML-Konfigurationsdatei.

System_CAPS_pubmethodSave(ConfigurationSaveMode, Boolean)

Schreibt die Konfigurationseinstellungen in dieser enthaltenen Configuration Objekt, das den aktuellen XML-Konfigurationsdatei.

System_CAPS_pubmethodSaveAs(String)

Schreibt die Konfigurationseinstellungen in dieser enthaltenen Configuration Objekt, das die angegebene XML-Konfigurationsdatei.

System_CAPS_pubmethodSaveAs(String, ConfigurationSaveMode)

Schreibt die Konfigurationseinstellungen in dieser enthaltenen Configuration Objekt, das die angegebene XML-Konfigurationsdatei.

System_CAPS_pubmethodSaveAs(String, ConfigurationSaveMode, Boolean)

Schreibt die Konfigurationseinstellungen in dieser enthaltenen Configuration Objekt, das die angegebene XML-Konfigurationsdatei.

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

Konfigurationseinstellungen werden in einer Hierarchie von Konfigurationsdateien gespeichert. Die Configuration -Klasseninstanz stellt dar, die zusammengeführte Ansicht der Konfigurationseinstellungen von allen Konfigurationsdateien, die auf eine bestimmte physische Einheit, z. B. ein Computer oder eine logische Entität, z. B. eine Anwendung oder Website angewendet. Die logische Einheit kann auf dem lokalen Computer oder auf einem Remoteserver vorhanden sein. Informationen zu Konfigurationsdateien finden Sie unter Konfigurieren von Apps mithilfe von Konfigurationsdateien und ASP.NET Configuration Files.

Wenn keine Konfigurationsdatei vorhanden, für eine angegebene Entität ist, die Configuration Objekt stellt die Standardeinstellungen für die Konfiguration, wie in der Datei Machine.config definiert.

Sie erhalten eine Configuration Objekt mithilfe der folgenden Klassen:

Die Namen der Methoden, die Zurückgeben einer Configuration Objekt beginnen mit "Open".

Sie können auch eine Konfigurationsdatei, die die Einstellungen für die Konfiguration darstellt Generieren einer Configuration Objekt. Hierzu können Sie eine der folgenden Methoden verwenden:

  • Rufen Sie die Save Methode, um eine neue Konfigurationsdatei zu erstellen.

  • Rufen Sie die SaveAs Methode, um eine neue Konfigurationsdatei an einem anderen Speicherort zu generieren.

Die Namen der Methoden, die Konfigurationsdateien erstellen, beginnen mit "Speichern".

System_CAPS_noteHinweis

Um Zugriff auf auf einem Remotecomputer zu aktivieren, verwenden Sie das Befehlszeilentool Aspnet_regiis. Weitere Informationen zu diesem Tool finden Sie unter ASP.NET IIS Registration Tool (Aspnet_regiis.exe). Informationen zum Erstellen von und Zugreifen auf benutzerdefinierte Einstellungen als die systeminternen Abschnitte, die in .NET Framework enthalten, finden Sie unter ConfigurationSection.

Hinweise für Implementierer:

Die Configuration -Klasse ermöglicht den programmgesteuerten Zugriff für das Bearbeiten von Konfigurationsdateien. Verwenden Sie eine der "Open" Methoden bereitgestellt werden, durch die WebConfigurationManager Klasse für ASP.NET-Webanwendungen oder durch die ConfigurationManager Klasse für Clientanwendungen. Diese Methoden geben ein Configuration -Objekt, das wiederum stellt die Methoden und Eigenschaften, die die zugrunde liegenden Konfigurationsdateien behandelt. Sie können diese Dateien zum Lesen oder Schreiben von Konfigurationsinformationen zugreifen.

Verwenden Sie die GetSection -Methode oder die GetSectionGroup Methode, um Konfigurationsinformationen zu lesen. Beachten Sie, dass der Benutzer oder Prozess die folgenden Berechtigungen verfügen muss:

  • Die Leseberechtigung für die Konfigurationsdatei auf der aktuellen Ebene der Hierarchie.

  • Leseberechtigungen Sie für alle übergeordneten Konfigurationsdateien.

Wenn Ihre Anwendung nur-Lese-Zugriff auf die eigene Konfiguration benötigt, wird empfohlen, Sie verwenden die GetSection methodenüberladungen für ASP.NET-Webanwendungen. Für die Clientanwendung verwendet die GetSection Methode.

Diese Methoden bieten Zugriff auf die zwischengespeicherten Konfigurationswerte für die aktuelle Anwendung, die eine bessere Leistung als hat die Configuration Klasse.

System_CAPS_noteHinweis

Wenn Sie eine statische GetSection Methode, die einen Pfadparameter annimmt, muss der Path-Parameter an die Anwendung verweisen in der der Code ausgeführt wird, andernfalls der Parameter wird ignoriert und Konfigurationsinformationen für die derzeit ausgeführte Anwendung zurückgegeben.

Verwenden Sie eine von der Save Methoden, um Konfigurationsinformationen zu schreiben. Beachten Sie, dass der Benutzer oder Prozess, der schreibt die folgenden Berechtigungen verfügen muss:

  • Eine Schreibberechtigung für die Konfigurationsdatei und das Verzeichnis auf der aktuellen Ebene der Hierarchie.

  • Leseberechtigungen Sie für alle Konfigurationsdateien.

Im folgenden Codebeispiel wird veranschaulicht, wie Sie die Configuration Klasse Konfigurationsdateielemente zuzugreifen.

using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Globalization;
using System.ComponentModel;
using System.Collections.Specialized;

// Before compiling this application, 
// remember to reference the System.Configuration assembly in your project. 
#region CustomSection class

// Define a custom section. This class is used to
// populate the configuration file.
// It creates the following custom section:
//  <CustomSection name="Contoso" url="http://www.contoso.com" port="8080" />.
public sealed class CustomSection : ConfigurationSection
{

    public CustomSection()
    {

    }


    [ConfigurationProperty("name",
     DefaultValue = "Contoso",
     IsRequired = true,
     IsKey = true)]
    public string Name
    {
        get
        {
            return (string)this["name"];
        }
        set
        {
            this["name"] = value;
        }
    }

    [ConfigurationProperty("url",
        DefaultValue = "http://www.contoso.com",
        IsRequired = true)]
    [RegexStringValidator(@"\w+:\/\/[\w.]+\S*")]
    public string Url
    {
        get
        {
            return (string)this["url"];
        }
        set
        {
            this["url"] = value;
        }
    }

    [ConfigurationProperty("port",
        DefaultValue = (int)8080,
        IsRequired = false)]
    [IntegerValidator(MinValue = 0,
        MaxValue = 8080, ExcludeRange = false)]
    public int Port
    {
        get
        {
            return (int)this["port"];
        }
        set
        {
            this["port"] = value;
        }
    }



}

#endregion

#region Using Configuration Class
class UsingConfigurationClass
{


    // Show how to create an instance of the Configuration class
    // that represents this application configuration file.  
    static void CreateConfigurationFile()
    {
        try
        {

            // Create a custom configuration section.
            CustomSection customSection = new CustomSection();

            // Get the current configuration file.
            System.Configuration.Configuration config =
                    ConfigurationManager.OpenExeConfiguration(
                    ConfigurationUserLevel.None);

            // Create the custom section entry  
            // in <configSections> group and the 
            // related target section in <configuration>.
            if (config.Sections["CustomSection"] == null)
            {
                config.Sections.Add("CustomSection", customSection);
            }

            // Create and add an entry to appSettings section.

            string conStringname="LocalSqlServer";
            string conString = @"data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true";
            string providerName="System.Data.SqlClient";

            ConnectionStringSettings connStrSettings = new ConnectionStringSettings();
            connStrSettings.Name = conStringname;
            connStrSettings.ConnectionString= conString;
            connStrSettings.ProviderName = providerName;

            config.ConnectionStrings.ConnectionStrings.Add(connStrSettings);

            // Add an entry to appSettings section.
            int appStgCnt =
                ConfigurationManager.AppSettings.Count;
            string newKey = "NewKey" + appStgCnt.ToString();

            string newValue = DateTime.Now.ToLongDateString() +
              " " + DateTime.Now.ToLongTimeString();

            config.AppSettings.Settings.Add(newKey, newValue);

            // Save the configuration file.
            customSection.SectionInformation.ForceSave = true;
            config.Save(ConfigurationSaveMode.Full);

            Console.WriteLine("Created configuration file: {0}",
                config.FilePath);

        }
        catch (ConfigurationErrorsException err)
        {
            Console.WriteLine("CreateConfigurationFile: {0}", err.ToString());
        }

    }

    // Show how to use the GetSection(string) method.
    static void GetCustomSection()
    {
        try
        {

            CustomSection customSection;

            // Get the current configuration file.
            System.Configuration.Configuration config =
                    ConfigurationManager.OpenExeConfiguration(
                    ConfigurationUserLevel.None) as Configuration;

            customSection =
                config.GetSection("CustomSection") as CustomSection;

            Console.WriteLine("Section name: {0}", customSection.Name);
            Console.WriteLine("Url: {0}", customSection.Url);
            Console.WriteLine("Port: {0}", customSection.Port);

        }
        catch (ConfigurationErrorsException err)
        {
            Console.WriteLine("Using GetSection(string): {0}", err.ToString());
        }

    }


    // Show how to use different modalities to save 
    // a configuration file.
    static void SaveConfigurationFile()
    {
        try
        {

            // Get the current configuration file.
            System.Configuration.Configuration config =
                    ConfigurationManager.OpenExeConfiguration(
                    ConfigurationUserLevel.None) as Configuration;

            // Save the full configuration file and force save even if the file was not modified.
            config.SaveAs("MyConfigFull.config", ConfigurationSaveMode.Full, true);
            Console.WriteLine("Saved config file as MyConfigFull.config using the mode: {0}",
                ConfigurationSaveMode.Full.ToString());

            config =
                    ConfigurationManager.OpenExeConfiguration(
                    ConfigurationUserLevel.None) as Configuration;

            // Save only the part of the configuration file that was modified. 
            config.SaveAs("MyConfigModified.config", ConfigurationSaveMode.Modified, true);
            Console.WriteLine("Saved config file as MyConfigModified.config using the mode: {0}",
                ConfigurationSaveMode.Modified.ToString());

            config =
                    ConfigurationManager.OpenExeConfiguration(
                    ConfigurationUserLevel.None) as Configuration;

            // Save the full configuration file.
            config.SaveAs("MyConfigMinimal.config");
            Console.WriteLine("Saved config file as MyConfigMinimal.config using the mode: {0}",
                ConfigurationSaveMode.Minimal.ToString());

        }
        catch (ConfigurationErrorsException err)
        {
            Console.WriteLine("SaveConfigurationFile: {0}", err.ToString());
        }

    }


    // Show how use the AppSettings and ConnectionStrings 
    // properties.
    static void GetSections(string section)
    {
        try
        {

            // Get the current configuration file.
            System.Configuration.Configuration config =
                    ConfigurationManager.OpenExeConfiguration(
                    ConfigurationUserLevel.None) as Configuration;

            // Get the selected section.
            switch (section)
            {
                case "appSettings":
                    try
                    {
                        AppSettingsSection appSettings =
                            config.AppSettings as AppSettingsSection;
                        Console.WriteLine("Section name: {0}",
                                appSettings.SectionInformation.SectionName);

                        // Get the AppSettings section elements.
                        Console.WriteLine();
                        Console.WriteLine("Using AppSettings property.");
                        Console.WriteLine("Application settings:");
                        // Get the KeyValueConfigurationCollection 
                        // from the configuration.
                        KeyValueConfigurationCollection settings =
                          config.AppSettings.Settings;

                        // Display each KeyValueConfigurationElement.
                        foreach (KeyValueConfigurationElement keyValueElement in settings)
                        {
                            Console.WriteLine("Key: {0}", keyValueElement.Key);
                            Console.WriteLine("Value: {0}", keyValueElement.Value);
                            Console.WriteLine();
                        }
                    }
                    catch (ConfigurationErrorsException e)
                    {
                        Console.WriteLine("Using AppSettings property: {0}",
                            e.ToString());
                    }
                    break;

                case "connectionStrings":
                    ConnectionStringsSection
                        conStrSection =
                        config.ConnectionStrings as ConnectionStringsSection;
                    Console.WriteLine("Section name: {0}",
                        conStrSection.SectionInformation.SectionName);

                    try
                    {
                        if (conStrSection.ConnectionStrings.Count != 0)
                        {
                            Console.WriteLine();
                            Console.WriteLine("Using ConnectionStrings property.");
                            Console.WriteLine("Connection strings:");

                            // Get the collection elements.
                            foreach (ConnectionStringSettings connection in
                              conStrSection.ConnectionStrings)
                            {
                                string name = connection.Name;
                                string provider = connection.ProviderName;
                                string connectionString = connection.ConnectionString;

                                Console.WriteLine("Name:               {0}",
                                  name);
                                Console.WriteLine("Connection string:  {0}",
                                  connectionString);
                                Console.WriteLine("Provider:            {0}",
                                   provider);
                            }
                        }
                    }
                    catch (ConfigurationErrorsException e)
                    {
                        Console.WriteLine("Using ConnectionStrings property: {0}",
                            e.ToString());
                    }
                    break;

                default:
                    Console.WriteLine(
                        "GetSections: Unknown section (0)", section);
                    break;
            }

        }
        catch (ConfigurationErrorsException err)
        {
            Console.WriteLine("GetSections: (0)", err.ToString());
        }

    }

    // Show how to use the Configuration object properties 
    // to obtain configuration file information.
    static void GetConfigurationInformation()
    {
        try
        {

            // Get the current configuration file.
            System.Configuration.Configuration config =
                    ConfigurationManager.OpenExeConfiguration(
                    ConfigurationUserLevel.None) as Configuration;

            Console.WriteLine("Reading configuration information:");

            ContextInformation evalContext =
                config.EvaluationContext as ContextInformation;
            Console.WriteLine("Machine level: {0}",
                evalContext.IsMachineLevel.ToString());

            string filePath = config.FilePath;
            Console.WriteLine("File path: {0}", filePath);

            bool hasFile = config.HasFile;
            Console.WriteLine("Has file: {0}", hasFile.ToString());


            ConfigurationSectionGroupCollection
                groups = config.SectionGroups;
            Console.WriteLine("Groups: {0}", groups.Count.ToString());
            foreach (ConfigurationSectionGroup group in groups)
            {
                Console.WriteLine("Group Name: {0}", group.Name);
               // Console.WriteLine("Group Type: {0}", group.Type);
            }


            ConfigurationSectionCollection
                sections = config.Sections;
            Console.WriteLine("Sections: {0}", sections.Count.ToString());

        }
        catch (ConfigurationErrorsException err)
        {
            Console.WriteLine("GetConfigurationInformation: {0}",err.ToString());
        }

    }

#endregion 

#region Application Main
    //*** User Interaction Class ***//

    // Obtain user's input and provide feedback.
    // This class contains the application Main() function.
    // It calls the ConfigurationManager methods based 
    // on the user's selection.
    class ApplicationMain
    {
        // Display user's menu.
        public static void UserMenu()
        {
            string applicationName =
                Environment.GetCommandLineArgs()[0] + ".exe";
            StringBuilder buffer = new StringBuilder();

            buffer.AppendLine("Application: " + applicationName);
            buffer.AppendLine("Make your selection.");
            buffer.AppendLine("?    -- Display help.");
            buffer.AppendLine("Q,q  -- Exit the application.");

            buffer.Append("1    -- Instantiate the");
            buffer.AppendLine(" Configuration class.");

            buffer.Append("2    -- Use GetSection(string) to read ");
            buffer.AppendLine(" a custom section.");

            buffer.Append("3    -- Use SaveAs methods");
            buffer.AppendLine(" to save the configuration file.");

            buffer.Append("4    -- Use AppSettings property to read");
            buffer.AppendLine(" the appSettings section.");
            buffer.Append("5    -- Use ConnectionStrings property to read");
            buffer.AppendLine(" the connectionStrings section.");

            buffer.Append("6    -- Use Configuration class properties");
            buffer.AppendLine(" to obtain configuration information.");

            Console.Write(buffer.ToString());
        }

        // Obtain user's input and provide
        // feedback.
        static void Main(string[] args)
        {
            // Define user selection string.
            string selection;

            // Get the name of the application.
            string appName =
                Environment.GetCommandLineArgs()[0];


            // Get user selection.
            while (true)
            {

                UserMenu();
                Console.Write("> ");
                selection = Console.ReadLine();
                if (selection != string.Empty)
                    break;
            }

            while (selection.ToLower() != "q")
            {
                // Process user's input.
                switch (selection)
                {
                    case "1":
                        // Show how to create an instance of the Configuration class.
                        CreateConfigurationFile();
                        break;

                    case "2":
                        // Show how to use GetSection(string) method.
                        GetCustomSection();
                        break;

                    case "3":
                        // Show how to use ConnectionStrings.
                        SaveConfigurationFile();
                        break;

                    case "4":
                        // Show how to use the AppSettings property.
                        GetSections("appSettings");
                        break;

                    case "5":
                        // Show how to use the ConnectionStrings property.
                        GetSections("connectionStrings");
                        break;

                    case "6":
                        // Show how to obtain configuration file information.
                        GetConfigurationInformation();
                        break;


                    default:
                        UserMenu();
                        break;
                }
                Console.Write("> ");
                selection = Console.ReadLine();
            }
        }
    }
#endregion

}

.NET Framework
Verfügbar seit 2.0

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: