ConfigurationSection Třída

Definice

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
ConfigurationSection
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

Získá ElementInformation objekt, který obsahuje přizpůsobitelné informace a funkce objektu ConfigurationElement .

(Zděděno od ConfigurationElement)
ElementProperty

ConfigurationElementProperty Získá objekt, který představuje ConfigurationElement samotný objekt.

(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 nullvlastnost .

(Zděděno od ConfigurationElement)
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()

Získá aktuální Type instanci.

(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 posledního uložení nebo načtení při implementaci v odvozené třídě.

IsReadOnly()

Získá hodnotu označující, zda ConfigurationElement objekt je jen pro čtení.

(Zděděno od ConfigurationElement)
ListErrors(IList)

Přidá do předaného seznamu chyby neplatné vlastnosti v tomto ConfigurationElement objektu a ve všech dílčích pomůcecích.

(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 neznámý prvek je nalezen 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á se po deserializaci.

(Zděděno od ConfigurationElement)
PreSerialize(XmlWriter)

Volá se 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 false při implementaci v odvozené třídě.

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 elementu konfigurace 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 by měl 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 při hierarchii 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 při hierarchii objektů konfigurace je 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)

Platí pro

Viz také