ConfigurationPropertyAttribute ConfigurationPropertyAttribute ConfigurationPropertyAttribute ConfigurationPropertyAttribute Class

Definition

Weist .NET Framework deklarativ an, eine Konfigurationseigenschaft zu instanziieren.Declaratively instructs the .NET Framework to instantiate a configuration property. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

public ref class ConfigurationPropertyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Property)]
public sealed class ConfigurationPropertyAttribute : Attribute
type ConfigurationPropertyAttribute = class
    inherit Attribute
Public NotInheritable Class ConfigurationPropertyAttribute
Inherits Attribute
Vererbung
ConfigurationPropertyAttributeConfigurationPropertyAttributeConfigurationPropertyAttributeConfigurationPropertyAttribute
Attribute

Beispiele

Im folgenden Beispiel wird gezeigt, wie die Eigenschaften eines benutzerdefinierten ConfigurationSection -Objekts mit ConfigurationPropertyAttribute dem-Attribut definiert werden.The following example shows how to define the properties of a custom ConfigurationSection object using the ConfigurationPropertyAttribute attribute.

Das Beispiel enthält zwei-Klassen.The example contains two classes. Die UrlsSection benutzerdefinierte-Klasse ConfigurationPropertyAttribute verwendet, um Ihre eigenen Eigenschaften zu definieren.The UrlsSection custom class uses the ConfigurationPropertyAttribute to define its own properties. Die- UrlsSection Klasse verwendet, um den benutzerdefinierten Abschnitt in der Anwendungs Konfigurationsdatei zu lesen und zu schreiben. UsingConfigurationPropertyAttributeThe UsingConfigurationPropertyAttribute class uses the UrlsSection to read and write the custom section in the application configuration file.

using System;
using System.Configuration;


// Define a custom section.
// This class shows how to use the ConfigurationPropertyAttribute.
public class UrlsSection : ConfigurationSection
{
    [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)0, IsRequired = false)]
    [IntegerValidator(MinValue = 0, MaxValue = 8080, ExcludeRange = false)]
    public int Port
    {
        get
        {
            return (int)this["port"];
        }
        set
        {
            this["port"] = value;
        }
    }
}
Imports System.Configuration


' Define a custom section.
' This class shows how to use the ConfigurationPropertyAttribute.
Public Class UrlsSection
    Inherits ConfigurationSection
    <ConfigurationProperty("name", DefaultValue:="Contoso", IsRequired:=True, IsKey:=True)>
    Public Property Name() As String
        Get
            Return CStr(Me("name"))
        End Get
        Set(ByVal value As String)
            Me("name") = value
        End Set
    End Property

    <ConfigurationProperty("url", DefaultValue:="http://www.contoso.com", IsRequired:=True), RegexStringValidator("\w+:\/\/[\w.]+\S*")>
    Public Property Url() As String
        Get
            Return CStr(Me("url"))
        End Get
        Set(ByVal value As String)
            Me("url") = value
        End Set
    End Property

    <ConfigurationProperty("port", DefaultValue:=0, IsRequired:=False), IntegerValidator(MinValue:=0, MaxValue:=8080, ExcludeRange:=False)>
    Public Property Port() As Integer
        Get
            Return CInt(Fix(Me("port")))
        End Get
        Set(ByVal value As Integer)
            Me("port") = value
        End Set
    End Property
End Class
using System;
using System.Configuration;

public class UsingConfigurationPropertyAttribute
{

    // Create a custom section and save it in the 
    // application configuration file.
    static void CreateCustomSection()
    {
        try
        {

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

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

            // Add the custom section to the application
            // configuration file.
            if (config.Sections["CustomSection"] == null)
            {
                config.Sections.Add("CustomSection", customSection);
            }

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

            Console.WriteLine("Created custom section in the application configuration file: {0}",
                config.FilePath);
            Console.WriteLine();

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

    }

    static void ReadCustomSection()
    {
        try
        {
            // Get the application configuration file.
            System.Configuration.Configuration config =
                    ConfigurationManager.OpenExeConfiguration(
                    ConfigurationUserLevel.None) as Configuration;

            // Read and display the custom section.
            UrlsSection customSection =
                config.GetSection("CustomSection") as UrlsSection;
            Console.WriteLine("Reading custom section from the configuration file.");
            Console.WriteLine("Section name: {0}", customSection.Name);
            Console.WriteLine("Url: {0}", customSection.Url);
            Console.WriteLine("Port: {0}", customSection.Port);
            Console.WriteLine();
        }
        catch (ConfigurationErrorsException err)
        {
            Console.WriteLine("ReadCustomSection(string): {0}", err.ToString());
        }

    }
    
    static void Main(string[] args)
    {
       
        // Get the name of the application.
        string appName =
            Environment.GetCommandLineArgs()[0];

        // Create a custom section and save it in the 
        // application configuration file.
        CreateCustomSection();

        // Read the custom section saved in the
        // application configuration file.
        ReadCustomSection();

        Console.WriteLine("Press enter to exit.");

        Console.ReadLine();
    }
}
Imports System.Configuration

Public Class UsingConfigurationPropertyAttribute

    ' Create a custom section and save it in the 
    ' application configuration file.
    Private Shared Sub CreateCustomSection()
        Try

            ' Create a custom configuration section.
            Dim customSection As New UrlsSection()

            ' Get the current configuration file.
            Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)

            ' Add the custom section to the application
            ' configuration file.
            If config.Sections("CustomSection") Is Nothing Then
                config.Sections.Add("CustomSection", customSection)
            End If


            ' Save the application configuration file.
            customSection.SectionInformation.ForceSave = True
            config.Save(ConfigurationSaveMode.Modified)

            Console.WriteLine("Created custom section in the application configuration file: {0}", config.FilePath)
            Console.WriteLine()

        Catch err As ConfigurationErrorsException
            Console.WriteLine("CreateCustomSection: {0}", err.ToString())
        End Try

    End Sub

    Private Shared Sub ReadCustomSection()
        Try
            ' Get the application configuration file.
            Dim config As System.Configuration.Configuration = TryCast(ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None), Configuration)

            ' Read and display the custom section.
            Dim customSection As UrlsSection = TryCast(config.GetSection("CustomSection"), UrlsSection)
            Console.WriteLine("Reading custom section from the configuration file.")
            Console.WriteLine("Section name: {0}", customSection.Name)
            Console.WriteLine("Url: {0}", customSection.Url)
            Console.WriteLine("Port: {0}", customSection.Port)
            Console.WriteLine()
        Catch err As ConfigurationErrorsException
            Console.WriteLine("ReadCustomSection(string): {0}", err.ToString())
        End Try

    End Sub

    Shared Sub Main(ByVal args() As String)

        ' Get the name of the application.
        Dim appName As String = Environment.GetCommandLineArgs()(0)

        ' Create a custom section and save it in the 
        ' application configuration file.
        CreateCustomSection()

        ' Read the custom section saved in the
        ' application configuration file.
        ReadCustomSection()

        Console.WriteLine("Press enter to exit.")

        Console.ReadLine()
    End Sub
End Class

Im folgenden finden Sie einen Auszug der Konfigurationsdatei, die den benutzerdefinierten Abschnitt enthält, wie im vorherigen Beispiel definiert.The following is an excerpt of the configuration file containing the custom section as defined in the previous sample.

<?xml version="1.0" encoding="utf-8"?>  
<configuration>  
    <configSections>  
        <section name="CustomSection" type="UrlsSection, UsingConfigurationPropertyAttribute, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />  
    </configSections>  
    <CustomSection name="Contoso" url="http://www.contoso.com" />  
</configuration>  

Hinweise

Sie verwenden das ConfigurationPropertyAttribute , um eine Konfigurations Eigenschaft zu ergänzen, die den .NET Framework anweist, die Eigenschaft zu instanziieren und zu initialisieren, indem Sie den Wert des accessatparameters verwenden.You use the ConfigurationPropertyAttribute to decorate a configuration property, which will instruct the .NET Framework to instantiate and to initialize the property using the value of the decorating parameter.

Hinweis

Die einfachste Möglichkeit, ein benutzerdefiniertes Konfigurationselement zu erstellen, ist die Verwendung des attributierten (deklarativen) Modells.The simplest way to create a custom configuration element is to use the attributed (declarative) model. Sie deklarieren die benutzerdefinierten öffentlichen Eigenschaften und ergänzen Sie ConfigurationPropertyAttribute mit dem-Attribut.You declare the custom public properties and decorate them with the ConfigurationPropertyAttribute attribute. Für jede mit diesem Attribut markierte Eigenschaft verwendet die .NET Framework Reflektion, um die accessderparameter zu lesen und ConfigurationProperty eine zugehörige Instanz zu erstellen.For each property marked with this attribute, the .NET Framework uses reflection to read the decorating parameters and create a related ConfigurationProperty instance. Sie können auch das programmgesteuerte Modell verwenden. in diesem Fall müssen Sie die benutzerdefinierten öffentlichen Eigenschaften deklarieren und ihre Auflistung zurückgeben.You can also use the programmatic model, in which case it is your responsibility to declare the custom public properties and return their collection.

Das .NET Framework Konfigurationssystem stellt Attributtypen bereit, die Sie während der Erstellung von benutzerdefinierten Konfigurationselementen verwenden können.The .NET Framework configuration system provides attribute types that you can use during the creation of custom configuration elements. Es gibt zwei Arten von Attributtypen:There are two kinds of attribute types:

  1. Die Typen, die den .NET Framework, wie die benutzerdefinierten Konfigurationselement Eigenschaften instanziiert werden.The types instructing the .NET Framework how to instantiate the custom configuration-element properties. Zu diesen Typen gehören:These types include:

  2. Die Typen, die den .NET Framework überprüfen, wie die Eigenschaften des benutzerdefinierten Konfigurations Elements überprüft werden.The types instructing the .NET Framework how to validate the custom configuration-element properties. Zu diesen Typen gehören:These types include:

Konstruktoren

ConfigurationPropertyAttribute(String) ConfigurationPropertyAttribute(String) ConfigurationPropertyAttribute(String) ConfigurationPropertyAttribute(String)

Initialisiert eine neue Instanz der ConfigurationPropertyAttribute-Klasse.Initializes a new instance of ConfigurationPropertyAttribute class.

Eigenschaften

DefaultValue DefaultValue DefaultValue DefaultValue

Ruft den Standardwert für die ergänzte Eigenschaft ab oder legt diesen fest.Gets or sets the default value for the decorated property.

IsDefaultCollection IsDefaultCollection IsDefaultCollection IsDefaultCollection

Ruft einen Wert ab, der angibt, ob dies die Standardeigenschaftenauflistung für die ergänzte Konfigurationseigenschaft ist, oder legt diesen fest.Gets or sets a value indicating whether this is the default property collection for the decorated configuration property.

IsKey IsKey IsKey IsKey

Ruft einen Wert ab, der angibt, ob dies eine Haupteigenschaft für die ergänzte Elementeigenschaft ist, oder legt diesen fest.Gets or sets a value indicating whether this is a key property for the decorated element property.

IsRequired IsRequired IsRequired IsRequired

Ruft einen Wert ab, der angibt, ob die ergänzte Elementeigenschaft erforderlich ist, oder legt diesen fest.Gets or sets a value indicating whether the decorated element property is required.

Name Name Name Name

Ruft den Namen der ergänzten Konfigurationselementeigenschaft ab.Gets the name of the decorated configuration-element property.

Options Options Options Options

Ruft die ConfigurationPropertyOptions für die ergänzte Eigenschaft des Konfigurationselements ab oder legt diese fest.Gets or sets the ConfigurationPropertyOptions for the decorated configuration-element property.

TypeId TypeId TypeId TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Methoden

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Gibt den Hashcode für diese Instanz zurück.Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Explizite Schnittstellenimplementierungen

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Gilt für:

Siehe auch