ConfigurationSection Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen Abschnitt in einer Konfigurationsdatei dar.
public ref class ConfigurationSection abstract : System::Configuration::ConfigurationElement
public abstract class ConfigurationSection : System.Configuration.ConfigurationElement
type ConfigurationSection = class
inherit ConfigurationElement
Public MustInherit Class ConfigurationSection
Inherits ConfigurationElement
- Vererbung
- Abgeleitet
Beispiele
Das folgende Beispiel zeigt, wie ein benutzerdefinierter Abschnitt programmgesteuert implementiert wird.
Ein vollständiges Beispiel zur Implementierung und Verwendung eines benutzerdefinierten Abschnitts, der mithilfe des Attributmodells implementiert wird, finden Sie unter ConfigurationElement.
// Define a custom section.
// The CustomSection type allows to define a custom section
// programmatically.
public sealed class CustomSection :
ConfigurationSection
{
// The collection (property bag) that contains
// the section properties.
private static ConfigurationPropertyCollection _Properties;
// Internal flag to disable
// property setting.
private static bool _ReadOnly;
// The FileName property.
private static readonly ConfigurationProperty _FileName =
new ConfigurationProperty("fileName",
typeof(string),"default.txt",
ConfigurationPropertyOptions.IsRequired);
// The MaxUsers property.
private static readonly ConfigurationProperty _MaxUsers =
new ConfigurationProperty("maxUsers",
typeof(long), (long)1000,
ConfigurationPropertyOptions.None);
// The MaxIdleTime property.
private static readonly ConfigurationProperty _MaxIdleTime =
new ConfigurationProperty("maxIdleTime",
typeof(TimeSpan), TimeSpan.FromMinutes(5),
ConfigurationPropertyOptions.IsRequired);
// CustomSection constructor.
public CustomSection()
{
// Property initialization
_Properties =
new ConfigurationPropertyCollection();
_Properties.Add(_FileName);
_Properties.Add(_MaxUsers);
_Properties.Add(_MaxIdleTime);
}
// This is a key customization.
// It returns the initialized property bag.
protected override ConfigurationPropertyCollection Properties
{
get
{
return _Properties;
}
}
private new bool IsReadOnly
{
get
{
return _ReadOnly;
}
}
// Use this to disable property setting.
private void ThrowIfReadOnly(string propertyName)
{
if (IsReadOnly)
throw new ConfigurationErrorsException(
"The property " + propertyName + " is read only.");
}
// Customizes the use of CustomSection
// by setting _ReadOnly to false.
// Remember you must use it along with ThrowIfReadOnly.
protected override object GetRuntimeObject()
{
// To enable property setting just assign true to
// the following flag.
_ReadOnly = true;
return base.GetRuntimeObject();
}
[StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\",
MinLength = 1, MaxLength = 60)]
public string FileName
{
get
{
return (string)this["fileName"];
}
set
{
// With this you disable the setting.
// Remember that the _ReadOnly flag must
// be set to true in the GetRuntimeObject.
ThrowIfReadOnly("FileName");
this["fileName"] = value;
}
}
[LongValidator(MinValue = 1, MaxValue = 1000000,
ExcludeRange = false)]
public long MaxUsers
{
get
{
return (long)this["maxUsers"];
}
set
{
this["maxUsers"] = value;
}
}
[TimeSpanValidator(MinValueString = "0:0:30",
MaxValueString = "5:00:0",
ExcludeRange = false)]
public TimeSpan MaxIdleTime
{
get
{
return (TimeSpan)this["maxIdleTime"];
}
set
{
this["maxIdleTime"] = value;
}
}
}
' Define a custom section.
' The CustomSection type allows to define a custom section
' programmatically.
NotInheritable Public Class CustomSection
Inherits ConfigurationSection
' The collection (property bag) that contains
' the section properties.
Private Shared _Properties As ConfigurationPropertyCollection
' Internal flag to disable
' property setting.
Private Shared _ReadOnly As Boolean
' The FileName property.
Private Shared _FileName As New ConfigurationProperty( _
"fileName", GetType(String), _
"default.txt", _
ConfigurationPropertyOptions.IsRequired)
' The MaxUsers property.
Private Shared _MaxUsers As New ConfigurationProperty( _
"maxUsers", GetType(Long), _
CType(1000, Long), _
ConfigurationPropertyOptions.None)
' The MaxIdleTime property.
Private Shared _MaxIdleTime As New ConfigurationProperty( _
"maxIdleTime", GetType(TimeSpan), _
TimeSpan.FromMinutes(5), _
ConfigurationPropertyOptions.IsRequired)
' CustomSection constructor.
Public Sub New()
' Property initialization
_Properties = _
New ConfigurationPropertyCollection()
_Properties.Add(_FileName)
_Properties.Add(_MaxUsers)
_Properties.Add(_MaxIdleTime)
End Sub
' This is a key customization.
' It returns the initialized property bag.
Protected Overrides ReadOnly Property Properties() _
As ConfigurationPropertyCollection
Get
Return _Properties
End Get
End Property
Private Shadows ReadOnly Property IsReadOnly() As Boolean
Get
Return _ReadOnly
End Get
End Property
' Use this to disable property setting.
Private Sub ThrowIfReadOnly(propertyName As String)
If IsReadOnly Then
Throw New ConfigurationErrorsException( _
"The property " + propertyName + " is read only.")
End If
End Sub
' Customizes the use of CustomSection
' by setting _ReadOnly to false.
' Remember you must use it along with ThrowIfReadOnly.
Protected Overrides Function GetRuntimeObject() As Object
' To enable property setting just assign true to
' the following flag.
_ReadOnly = True
Return MyBase.GetRuntimeObject()
End Function 'GetRuntimeObject
<StringValidator( _
InvalidCharacters:=" ~!@#$%^&*()[]{}/;'""|\", _
MinLength:=1, MaxLength:=60)> _
Public Property FileName() As String
Get
Return CStr(Me("fileName"))
End Get
Set(ByVal value As String)
' With this you disable the setting.
' Remember that the _ReadOnly flag must
' be set to true in the GetRuntimeObject.
ThrowIfReadOnly("FileName")
Me("fileName") = value
End Set
End Property
<LongValidator( _
MinValue:=1, MaxValue:=1000000, _
ExcludeRange:=False)> _
Public Property MaxUsers() As Long
Get
Return Fix(Me("maxUsers"))
End Get
Set(ByVal value As Long)
Me("maxUsers") = Value
End Set
End Property
<TimeSpanValidator( _
MinValueString:="0:0:30", _
MaxValueString:="5:00:0", ExcludeRange:=False)> _
Public Property MaxIdleTime() As TimeSpan
Get
Return CType(Me("maxIdleTime"), TimeSpan)
End Get
Set(ByVal value As TimeSpan)
Me("maxIdleTime") = Value
End Set
End Property
End Class
Das folgende Beispiel ist ein Auszug der Konfigurationsdatei, da sie für das vorherige Beispiel gilt.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="CustomSection" type="Samples.AspNet. CustomSection, CustomConfigurationSection, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" restartOnExternalChanges="true" />
</configSections>
<CustomSection fileName="default.txt" maxUsers="1000" maxIdleTime="00:15:00" />
</configuration>
Hinweise
Sie verwenden die ConfigurationSection Klasse, um einen benutzerdefinierten Abschnittstyp zu implementieren. Erweitern Sie die ConfigurationSection Klasse, um benutzerdefinierte Behandlung und programmgesteuerten Zugriff auf benutzerdefinierte Konfigurationsabschnitte bereitzustellen.
Ein Abschnitt registriert den Behandlungstyp mit einem Eintrag im configSections Element. Ein Beispiel finden Sie unter dem im Beispielabschnitt gezeigten Konfigurationsdateiauszug.
Hinweis
In früheren Versionen des .NET Frameworks wurden Konfigurationsabschnittshandler verwendet, um programmgesteuert Änderungen an den Konfigurationseinstellungen vorzunehmen. Jetzt werden alle Standardkonfigurationsabschnitte durch Klassen dargestellt, die die ConfigurationSection Klasse erweitern.
Hinweise für Ausführende
Sie können ein programmgesteuertes oder deklaratives (attributiert) Codiermodell verwenden, um benutzerdefinierte Konfigurationsabschnitte zu erstellen:
Programmgesteuertes Modell. Dieses Modell erfordert, dass Sie für jedes Abschnittsattribut eine Eigenschaft erstellen, um dessen Wert abzurufen oder festzulegen und sie dem internen Eigenschaftenbehälter der zugrunde liegenden ConfigurationElement Basisklasse hinzuzufügen.
Deklaratives Modell. Mit diesem einfacheren Modell, das auch als Attributmodell bezeichnet wird, können Sie ein Abschnittsattribut mithilfe einer Eigenschaft definieren und mit Attributen versehen. Diese Attribute weisen das ASP.NET-Konfigurationssystem über die Eigenschaftentypen und deren Standardwerte an. Mit diesen Informationen, die durch Spiegelung abgerufen werden, erstellt das ASP.NET-Konfigurationssystem die Abschnittseigenschaftenobjekte und führt die erforderliche Initialisierung aus.
Die Configuration Klasse ermöglicht den programmgesteuerten Zugriff zum Bearbeiten von Konfigurationsdateien. Sie können auf diese Dateien zum Lesen oder Schreiben wie folgt zugreifen:
Lesen. Sie verwenden GetSection(String) oder GetSectionGroup(String) lesen Konfigurationsinformationen. Beachten Sie, dass der Benutzer oder der Prozess, der gelesen wird, über die folgenden Berechtigungen verfügen muss:
Leseberechtigung für die Konfigurationsdatei auf der aktuellen Konfigurationshierarchieebene.
Leseberechtigungen für alle übergeordneten Konfigurationsdateien.
Wenn Ihre Anwendung schreibgeschützten Zugriff auf ihre eigene Konfiguration benötigt, empfiehlt es sich, die GetSection überladenen Methoden im Fall von Webanwendungen oder die GetSection(String) Methode im Fall von Clientanwendungen zu verwenden.
Diese Methoden bieten Zugriff auf die zwischengespeicherten Konfigurationswerte für die aktuelle Anwendung, die eine bessere Leistung als die Configuration Klasse aufweist.
Hinweis: Wenn Sie eine statische GetSection Methode verwenden, die einen path Parameter verwendet, muss der path Parameter auf die Anwendung verweisen, in der der Code ausgeführt wird. Andernfalls wird der Parameter ignoriert und Konfigurationsinformationen für die aktuell ausgeführte Anwendung zurückgegeben.
Schreiben. Sie verwenden eine der Save Methoden zum Schreiben von Konfigurationsinformationen. Beachten Sie, dass der Benutzer oder der Prozess, der schreibt, über die folgenden Berechtigungen verfügen muss:
Schreibberechtigung für die Konfigurationsdatei und das Verzeichnis auf der aktuellen Hierarchieebene der Konfiguration.
Leseberechtigungen für alle Konfigurationsdateien.
Konstruktoren
| Name | Beschreibung |
|---|---|
| ConfigurationSection() |
Initialisiert eine neue Instanz der ConfigurationSection-Klasse. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| CurrentConfiguration |
Ruft einen Verweis auf die Instanz der obersten Ebene Configuration ab, die die Konfigurationshierarchie darstellt, zu der die aktuelle ConfigurationElement Instanz gehört. (Geerbt von ConfigurationElement) |
| ElementInformation |
Ruft ein ElementInformation Objekt ab, das die nicht anpassbaren Informationen und Funktionen des ConfigurationElement Objekts enthält. (Geerbt von ConfigurationElement) |
| ElementProperty |
Ruft das ConfigurationElementProperty Objekt ab, das das ConfigurationElement Objekt selbst darstellt. (Geerbt von ConfigurationElement) |
| EvaluationContext |
Ruft das ContextInformation-Objekt für das ConfigurationElement-Objekt ab. (Geerbt von ConfigurationElement) |
| HasContext |
Ruft einen Wert ab, der angibt, ob die CurrentConfiguration Eigenschaft ist |
| Item[ConfigurationProperty] |
Dient zum Abrufen oder Festlegen einer Eigenschaft oder eines Attributs dieses Konfigurationselements. (Geerbt von ConfigurationElement) |
| Item[String] |
Dient zum Abrufen oder Festlegen einer Eigenschaft, eines Attributs oder eines untergeordneten Elements dieses Konfigurationselements. (Geerbt von ConfigurationElement) |
| LockAllAttributesExcept |
Ruft die Auflistung gesperrter Attribute ab. (Geerbt von ConfigurationElement) |
| LockAllElementsExcept |
Ruft die Auflistung gesperrter Elemente ab. (Geerbt von ConfigurationElement) |
| LockAttributes |
Ruft die Auflistung gesperrter Attribute ab. (Geerbt von ConfigurationElement) |
| LockElements |
Ruft die Auflistung gesperrter Elemente ab. (Geerbt von ConfigurationElement) |
| LockItem |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob das Element gesperrt ist. (Geerbt von ConfigurationElement) |
| Properties |
Ruft die Auflistung von Eigenschaften ab. (Geerbt von ConfigurationElement) |
| SectionInformation |
Ruft ein SectionInformation Objekt ab, das die nicht anpassbaren Informationen und Funktionen des ConfigurationSection Objekts enthält. |
Methoden
| Name | Beschreibung |
|---|---|
| DeserializeElement(XmlReader, Boolean) |
Liest XML aus der Konfigurationsdatei. (Geerbt von ConfigurationElement) |
| DeserializeSection(XmlReader) |
Liest XML aus der Konfigurationsdatei. |
| Equals(Object) |
Vergleicht die aktuelle ConfigurationElement Instanz mit dem angegebenen Objekt. (Geerbt von ConfigurationElement) |
| GetHashCode() |
Ruft einen eindeutigen Wert ab, der die aktuelle ConfigurationElement Instanz darstellt. (Geerbt von ConfigurationElement) |
| GetRuntimeObject() |
Gibt ein benutzerdefiniertes Objekt zurück, wenn es in einer abgeleiteten Klasse überschrieben wird. |
| GetTransformedAssemblyString(String) |
Gibt die transformierte Version des angegebenen Assemblynamens zurück. (Geerbt von ConfigurationElement) |
| GetTransformedTypeString(String) |
Gibt die transformierte Version des angegebenen Typnamens zurück. (Geerbt von ConfigurationElement) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| Init() |
Legt das ConfigurationElement Objekt auf seinen Anfangszustand fest. (Geerbt von ConfigurationElement) |
| InitializeDefault() |
Wird verwendet, um einen Standardsatz von Werten für das ConfigurationElement Objekt zu initialisieren. (Geerbt von ConfigurationElement) |
| IsModified() |
Gibt an, ob dieses Konfigurationselement seit dem letzten Speichern oder Laden geändert wurde, wenn es in einer abgeleiteten Klasse implementiert wurde. |
| IsReadOnly() |
Ruft einen Wert ab, der angibt, ob das ConfigurationElement Objekt schreibgeschützt ist. (Geerbt von ConfigurationElement) |
| ListErrors(IList) |
Fügt der übergebenen Liste die Fehler der ungültigen Eigenschaft in diesem ConfigurationElement Objekt und in allen Unterelementen hinzu. (Geerbt von ConfigurationElement) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| OnDeserializeUnrecognizedAttribute(String, String) |
Ruft einen Wert ab, der angibt, ob während der Deserialisierung ein unbekanntes Attribut gefunden wird. (Geerbt von ConfigurationElement) |
| OnDeserializeUnrecognizedElement(String, XmlReader) |
Ruft einen Wert ab, der angibt, ob während der Deserialisierung ein unbekanntes Element auftritt. (Geerbt von ConfigurationElement) |
| OnRequiredPropertyNotFound(String) |
Löst eine Ausnahme aus, wenn eine erforderliche Eigenschaft nicht gefunden wird. (Geerbt von ConfigurationElement) |
| PostDeserialize() |
Wird nach der Deserialisierung aufgerufen. (Geerbt von ConfigurationElement) |
| PreSerialize(XmlWriter) |
Wird vor der Serialisierung aufgerufen. (Geerbt von ConfigurationElement) |
| Reset(ConfigurationElement) |
Setzt den internen Zustand des ConfigurationElement Objekts zurück, einschließlich der Sperren und der Eigenschaftenauflistungen. (Geerbt von ConfigurationElement) |
| ResetModified() |
Setzt den Wert der IsModified() Methode zurück, wenn |
| SerializeElement(XmlWriter, Boolean) |
Schreibt den Inhalt dieses Konfigurationselements in die Konfigurationsdatei, wenn es in einer abgeleiteten Klasse implementiert wird. (Geerbt von ConfigurationElement) |
| SerializeSection(ConfigurationElement, String, ConfigurationSaveMode) |
Erstellt eine XML-Zeichenfolge, die eine nicht zusammengeführte Ansicht des ConfigurationSection Objekts als einzelner Abschnitt enthält, um in eine Datei zu schreiben. |
| SerializeToXmlElement(XmlWriter, String) |
Schreibt die äußeren Tags dieses Konfigurationselements in die Konfigurationsdatei, wenn sie in einer abgeleiteten Klasse implementiert wird. (Geerbt von ConfigurationElement) |
| SetPropertyValue(ConfigurationProperty, Object, Boolean) |
Legt eine Eigenschaft auf den angegebenen Wert fest. (Geerbt von ConfigurationElement) |
| SetReadOnly() |
Legt die IsReadOnly() Eigenschaft für das ConfigurationElement Objekt und alle Unterelemente fest. (Geerbt von ConfigurationElement) |
| ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName) |
Gibt an, ob das angegebene Element serialisiert werden soll, wenn die Konfigurationsobjekthierarchie für die angegebene Zielversion des .NET Framework serialisiert wird. |
| ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement) |
Gibt an, ob die angegebene Eigenschaft serialisiert werden soll, wenn die Konfigurationsobjekthierarchie für die angegebene Zielversion des .NET Framework serialisiert wird. |
| ShouldSerializeSectionInTargetVersion(FrameworkName) |
Gibt an, ob die aktuelle ConfigurationSection-Instanz serialisiert werden soll, wenn die Konfigurationsobjekthierarchie für die angegebene Zielversion des .NET Framework serialisiert wird. |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
| Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode) |
Ändert das ConfigurationElement Objekt, um alle Werte zu entfernen, die nicht gespeichert werden sollen. (Geerbt von ConfigurationElement) |