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 innerhalb 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 zum Implementieren und Verwenden eines benutzerdefinierten Abschnitts, der mithilfe des attributierten Modells 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, wie es 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. Informationen zur Verwendung benutzerdefinierter Konfigurationsabschnitte finden Sie unter Vorgehensweise: Erstellen von benutzerdefinierten Konfigurationsabschnitten mithilfe von ConfigurationSection.
Ein Abschnitt registriert seinen Behandlungstyp bei einem Eintrag im configSections
-Element. Ein Beispiel finden Sie im Konfigurationsdateiauszug im Abschnitt Beispiel.
Hinweis
In früheren Versionen von .NET Framework wurden Konfigurationsabschnittshandler verwendet, um programmgesteuerte Änderungen an 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 ein deklaratives (attributiertes) Codierungsmodell verwenden, um benutzerdefinierte Konfigurationsabschnitte zu erstellen:
Programmgesteuertes Modell. Dieses Modell erfordert, dass Sie für jedes Abschnittsattribut eine Eigenschaft erstellen, um ihren Wert abzurufen oder festzulegen und ihn dem internen Eigenschaftenbehälter der zugrunde liegenden ConfigurationElement Basisklasse hinzuzufügen.
Deklaratives Modell. Mit diesem einfacheren Modell, das auch als attributiertes Modell bezeichnet wird, können Sie ein Abschnittsattribut definieren, indem Sie eine -Eigenschaft verwenden und es mit Attributen versehen. Diese Attribute weisen das ASP.NET-Konfigurationssystem über die Eigenschaftentypen und deren Standardwerte an. Mit diesen Informationen, die durch Reflektion abgerufen werden, erstellt das ASP.NET-Konfigurationssystem die Abschnittseigenschaftenobjekte und führt die erforderliche Initialisierung aus.
Die Configuration -Klasse ermöglicht 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) , um Konfigurationsinformationen zu lesen. Beachten Sie, dass der Benutzer oder Der Prozess, der liest, ü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, bei Webanwendungen die GetSection überladenen Methoden oder bei GetSection(String) Clientanwendungen die -Methode 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 akzeptiert, 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 derzeit ausgeführte Anwendung zurückgegeben.
Schreiben. Sie verwenden eine der Save Methoden, um Konfigurationsinformationen zu schreiben. 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 Konfigurationshierarchieebene.
Leseberechtigungen für alle Konfigurationsdateien.
Konstruktoren
ConfigurationSection() |
Initialisiert eine neue Instanz der ConfigurationSection-Klasse. |
Eigenschaften
CurrentConfiguration |
Ruft einen Verweis auf die Configuration-Instanz der obersten Ebene 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 |
Item[ConfigurationProperty] |
Ruft eine Eigenschaft oder ein Attribut dieses Konfigurationselements ab oder legt diese bzw. dieses fest. (Geerbt von ConfigurationElement) |
Item[String] |
Ruft eine Eigenschaft, ein Attribut oder ein untergeordnetes Element dieses Konfigurationselements ab oder legt diese(s) fest. (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 |
Ruft einen Wert ab, der angibt, ob das Element gesperrt ist, oder legt diesen fest. (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
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 den Type der aktuellen Instanz ab. (Geerbt von Object) |
Init() |
Legt für das ConfigurationElement-Objekt den Ausgangszustand 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 geändert wurde, seit es zuletzt gespeichert oder geladen wurde, wenn es in einer abgeleiteten Klasse implementiert wurde. |
IsReadOnly() |
Ruft einen Wert ab, der angibt, ob das ConfigurationElement schreibgeschützt ist. (Geerbt von ConfigurationElement) |
ListErrors(IList) |
Fügt die Fehler über ungültige Eigenschaften in diesem ConfigurationElement-Objekt und in allen Unterelementen der übergebenen Liste hinzu. (Geerbt von ConfigurationElement) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
OnDeserializeUnrecognizedAttribute(String, String) |
Ruft einen Wert ab, der angibt, ob während der Deserialisierung ein unbekanntes Attribut aufgetreten ist. (Geerbt von ConfigurationElement) |
OnDeserializeUnrecognizedElement(String, XmlReader) |
Ruft einen Wert ab, der angibt, ob während der Deserialisierung ein unbekanntes Element aufgetreten ist. (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 Status dieses ConfigurationElement-Objekts zurück, einschließlich der Sperren und der Eigenschaftenauflistungen. (Geerbt von ConfigurationElement) |
ResetModified() |
Setzt bei Implementierung in einer abgeleiteten Klasse den Wert der IsModified()-Methode auf |
SerializeElement(XmlWriter, Boolean) |
Schreibt bei Implementierung in einer abgeleiteten Klasse den Inhalt dieses Konfigurationselements in die Konfigurationsdatei. (Geerbt von ConfigurationElement) |
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode) |
Erstellt eine XML-Zeichenfolge mit einer nicht zusammengeführten Ansicht des ConfigurationSection-Objekts als einzelnem Abschnitt, der in einer Datei geschrieben werden soll. |
SerializeToXmlElement(XmlWriter, String) |
Schreibt bei Implementierung in einer abgeleiteten Klasse die äußeren Tags dieses Konfigurationselements in die Konfigurationsdatei. (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 von .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 von .NET Framework serialisiert wird. |
ShouldSerializeSectionInTargetVersion(FrameworkName) |
Gibt an, ob die aktuelle ConfigurationSection Instanz serialisiert werden soll, wenn die Konfigurationsobjekthierarchie für die angegebene Zielversion von .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) |