ConfigurationSection Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje oddíl v rámci konfiguračního souboru.
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
- Dědičnost
- Odvozené
Příklady
Následující příklad ukazuje, jak implementovat vlastní oddíl programově.
Úplný příklad, který ukazuje, jak implementovat a používat vlastní oddíl implementovaný pomocí atributového modelu, najdete v tématu 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
Následující příklad je výňatek z konfiguračního souboru, protože se vztahuje na předchozí příklad.
<?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>
Poznámky
Třídu použijete ConfigurationSection k implementaci vlastního typu oddílu. Rozšiřte třídu tak ConfigurationSection , aby poskytovala vlastní zpracování a programový přístup k oddílům vlastní konfigurace. Informace o tom, jak používat oddíly vlastní konfigurace, najdete v tématu Postupy: Vytváření oddílů vlastní konfigurace pomocí configurationSection.
Oddíl registruje typ zpracování s položkou v elementu configSections
. Příklad najdete v ukázce konfiguračního souboru v části Příklad.
Poznámka
V předchozích verzích rozhraní .NET Framework byly obslužné rutiny oddílu konfigurace použity k provádění změn nastavení konfigurace prostřednictvím kódu programu. Nyní jsou všechny výchozí konfigurační oddíly reprezentovány třídami, které rozšiřují ConfigurationSection třídu.
Poznámky pro implementátory
K vytvoření vlastních konfiguračních oddílů můžete použít programový nebo deklarativní (atributem) kódovací model:
Programový model. Tento model vyžaduje, abyste pro každý atribut oddílu vytvořili vlastnost pro získání nebo nastavení její hodnoty a přidali ji do interního kontejneru vlastností základní ConfigurationElement třídy.
Deklarativní model. Tento jednodušší model, označovaný také jako atributový model, umožňuje definovat atribut oddílu pomocí vlastnosti a zdobení atributy. Tyto atributy instruují konfigurační systém ASP.NET o typech vlastností a jejich výchozích hodnotách. S těmito informacemi získanými prostřednictvím reflexe vytvoří konfigurační systém ASP.NET objekty vlastností oddílu a provede požadovanou inicializaci.
Třída Configuration umožňuje programový přístup pro úpravy konfiguračních souborů. K těmto souborům můžete přistupovat pro čtení nebo zápis následujícím způsobem:
Čtení. Ke čtení informací o konfiguraci použijete GetSection(String) nebo GetSectionGroup(String) . Všimněte si, že uživatel nebo proces, který čte, musí mít následující oprávnění:
Oprávnění ke čtení konfiguračního souboru na aktuální úrovni hierarchie konfigurace
Oprávnění ke čtení všech nadřazených konfiguračních souborů
Pokud vaše aplikace potřebuje přístup jen pro čtení ke své vlastní konfiguraci, doporučujeme použít GetSection přetížené metody v případě webových aplikací nebo metodu GetSection(String) v případě klientských aplikací.
Tyto metody poskytují přístup k hodnotám konfigurace v mezipaměti pro aktuální aplikaci, která má lepší výkon než Configuration třída.
Poznámka: Pokud použijete statickou GetSection
metodu path
, která přebírá parametr, path
musí parametr odkazovat na aplikaci, ve které je kód spuštěný. V opačném případě se parametr ignoruje a vrátí se informace o konfiguraci aktuálně spuštěné aplikace.
Psaní. K zápisu Save informací o konfiguraci použijete jednu z těchto metod. Všimněte si, že uživatel nebo proces, který zapisuje, musí mít následující oprávnění:
Oprávnění k zápisu do konfiguračního souboru a adresáře na aktuální úrovni hierarchie konfigurace
Oprávnění ke čtení všech konfiguračních souborů
Konstruktory
ConfigurationSection() |
Inicializuje novou instanci ConfigurationSection třídy . |
Vlastnosti
CurrentConfiguration |
Získá odkaz na instanci nejvyšší úrovně Configuration , která představuje hierarchii konfigurace, do které aktuální ConfigurationElement instance patří. (Zděděno od ConfigurationElement) |
ElementInformation |
ElementInformation Získá objekt, který obsahuje neuzpůsobitelné informace a funkce objektuConfigurationElement. (Zděděno od ConfigurationElement) |
ElementProperty |
ConfigurationElementProperty Získá objekt, který představuje ConfigurationElement objekt samotný. (Zděděno od ConfigurationElement) |
EvaluationContext |
ContextInformation Získá objekt pro ConfigurationElement objekt . (Zděděno od ConfigurationElement) |
HasContext |
Získá hodnotu, která označuje, zda CurrentConfiguration je |
Item[ConfigurationProperty] |
Získá nebo nastaví vlastnost nebo atribut tohoto elementu konfigurace. (Zděděno od ConfigurationElement) |
Item[String] |
Získá nebo nastaví vlastnost, atribut nebo podřízený prvek tohoto elementu konfigurace. (Zděděno od ConfigurationElement) |
LockAllAttributesExcept |
Získá kolekci uzamčených atributů. (Zděděno od ConfigurationElement) |
LockAllElementsExcept |
Získá kolekci uzamčených prvků. (Zděděno od ConfigurationElement) |
LockAttributes |
Získá kolekci uzamčených atributů. (Zděděno od ConfigurationElement) |
LockElements |
Získá kolekci uzamčených prvků. (Zděděno od ConfigurationElement) |
LockItem |
Získá nebo nastaví hodnotu označující, zda je prvek uzamčen. (Zděděno od ConfigurationElement) |
Properties |
Získá kolekci vlastností. (Zděděno od ConfigurationElement) |
SectionInformation |
SectionInformation Získá objekt, který obsahuje neuzpůsobitelné informace a funkce objektuConfigurationSection. |
Metody
DeserializeElement(XmlReader, Boolean) |
Načte XML z konfiguračního souboru. (Zděděno od ConfigurationElement) |
DeserializeSection(XmlReader) |
Načte XML z konfiguračního souboru. |
Equals(Object) |
Porovná aktuální ConfigurationElement instanci se zadaným objektem. (Zděděno od ConfigurationElement) |
GetHashCode() |
Získá jedinečnou hodnotu představující aktuální ConfigurationElement instanci. (Zděděno od ConfigurationElement) |
GetRuntimeObject() |
Vrátí vlastní objekt při přepsání v odvozené třídě. |
GetTransformedAssemblyString(String) |
Vrátí transformovanou verzi zadaného názvu sestavení. (Zděděno od ConfigurationElement) |
GetTransformedTypeString(String) |
Vrátí transformovanou verzi zadaného názvu typu. (Zděděno od ConfigurationElement) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
Init() |
ConfigurationElement Nastaví objekt do počátečního stavu. (Zděděno od ConfigurationElement) |
InitializeDefault() |
Slouží k inicializaci výchozí sady hodnot objektu ConfigurationElement . (Zděděno od ConfigurationElement) |
IsModified() |
Určuje, zda byl tento konfigurační prvek změněn od jeho posledního uložení nebo načtení při implementaci v odvozené třídě. |
IsReadOnly() |
Získá hodnotu označující, zda ConfigurationElement je objekt jen pro čtení. (Zděděno od ConfigurationElement) |
ListErrors(IList) |
Přidá chyby neplatné vlastnosti v tomto ConfigurationElement objektu a ve všech podelementech, do předaného seznamu. (Zděděno od ConfigurationElement) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
OnDeserializeUnrecognizedAttribute(String, String) |
Získá hodnotu označující, zda je zjištěn neznámý atribut během deserializace. (Zděděno od ConfigurationElement) |
OnDeserializeUnrecognizedElement(String, XmlReader) |
Získá hodnotu označující, zda je zjištěn neznámý prvek během deserializace. (Zděděno od ConfigurationElement) |
OnRequiredPropertyNotFound(String) |
Vyvolá výjimku, pokud není nalezena požadovaná vlastnost. (Zděděno od ConfigurationElement) |
PostDeserialize() |
Volána po deserializaci. (Zděděno od ConfigurationElement) |
PreSerialize(XmlWriter) |
Volána před serializací. (Zděděno od ConfigurationElement) |
Reset(ConfigurationElement) |
Resetuje vnitřní stav objektu ConfigurationElement , včetně zámků a kolekcí vlastností. (Zděděno od ConfigurationElement) |
ResetModified() |
Resetuje hodnotu IsModified() metody na |
SerializeElement(XmlWriter, Boolean) |
Zapíše obsah tohoto konfiguračního prvku do konfiguračního souboru při implementaci v odvozené třídě. (Zděděno od ConfigurationElement) |
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode) |
Vytvoří řetězec XML obsahující nesloučené zobrazení objektu ConfigurationSection jako jeden oddíl pro zápis do souboru. |
SerializeToXmlElement(XmlWriter, String) |
Zapíše vnější značky tohoto konfiguračního prvku do konfiguračního souboru při implementaci v odvozené třídě. (Zděděno od ConfigurationElement) |
SetPropertyValue(ConfigurationProperty, Object, Boolean) |
Nastaví vlastnost na zadanou hodnotu. (Zděděno od ConfigurationElement) |
SetReadOnly() |
IsReadOnly() Nastaví vlastnost objektu ConfigurationElement a všech dílčích elementů. (Zděděno od ConfigurationElement) |
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName) |
Určuje, zda zadaný prvek má být serializován, když je hierarchie objektů konfigurace serializována pro zadanou cílovou verzi rozhraní .NET Framework. |
ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement) |
Určuje, zda má být zadaná vlastnost serializována, když je hierarchie objektů konfigurace serializována pro zadanou cílovou verzi rozhraní .NET Framework. |
ShouldSerializeSectionInTargetVersion(FrameworkName) |
Určuje, zda aktuální ConfigurationSection instance by měla být serializována, když je hierarchie objektů konfigurace serializována pro zadanou cílovou verzi rozhraní .NET Framework. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode) |
Upraví objekt tak, ConfigurationElement aby odebral všechny hodnoty, které by neměly být uloženy. (Zděděno od ConfigurationElement) |