Sdílet prostřednictvím


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žít vlastní oddíl implementovaný pomocí atributového modelu, viz 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 konfiguračního souboru, který 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. ConfigurationSection Rozšiřte třídu tak, aby poskytovala vlastní zpracování a programový přístup k vlastním oddílům konfigurace.

Oddíl registruje svůj typ zpracování s položkou v configSections prvku. Příklad najdete v výňatku konfiguračního souboru, který je zobrazený v části Příklad.

Poznámka:

V předchozích verzích .NET Framework se obslužné rutiny konfiguračních oddílů používaly k programovému provádění změn nastavení konfigurace. 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 oddílů konfigurace můžete použít programový nebo deklarativní (atributovaný) model kódování:

  • Programový model. Tento model vyžaduje, aby pro každý atribut oddílu vytvořili vlastnost, která získá nebo nastaví jeho hodnotu a přidá ji do interního balíčku vlastností základní ConfigurationElement základní třídy.

  • Deklarativní model. Tento jednodušší model, označovaný také jako model s atributy, umožňuje definovat atribut oddílu pomocí vlastnosti a dekódovat ho 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 reflexí 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í. Používáte GetSection(String) nebo GetSectionGroup(String) čtete informace o konfiguraci. 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í u všech nadřazených konfiguračních souborů

    Pokud vaše aplikace potřebuje přístup jen pro čtení k vlastní konfiguraci, doporučujeme použít GetSection přetížené metody v případě webových aplikací nebo GetSection(String) metodu v případě klientských aplikací.

    Tyto metody poskytují přístup k hodnotám konfigurace uložené v mezipaměti pro aktuální aplikaci, která má lepší výkon než Configuration třída.

Poznámka: Pokud používáte statickou GetSection metodu path , která přebírá parametr, musí parametr odkazovat na aplikaci, path ve které je kód spuštěn. Jinak 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 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 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

Name Description
ConfigurationSection()

Inicializuje novou instanci ConfigurationSection třídy.

Vlastnosti

Name Description
CurrentConfiguration

Získá odkaz na instanci nejvyšší úrovně Configuration, která představuje hierarchii konfigurace, do které patří aktuální instance ConfigurationElement.

(Zděděno od ConfigurationElement)
ElementInformation

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

(Zděděno od ConfigurationElement)
ElementProperty

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

(Zděděno od ConfigurationElement)
EvaluationContext

Získá objekt ContextInformation pro objekt ConfigurationElement.

(Zděděno od ConfigurationElement)
HasContext

Získá hodnotu, která určuje, zda CurrentConfiguration vlastnost je null.

(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 konfiguračního elementu.

(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

Name Description
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á Type aktuální instance.

(Zděděno od Object)
Init()

Nastaví objekt ConfigurationElement na jeho počáteční stav.

(Zděděno od ConfigurationElement)
InitializeDefault()

Slouží k inicializaci výchozí sady hodnot pro objekt 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 určující, zda ConfigurationElement objekt je jen pro čtení.

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

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

(Zděděno od ConfigurationElement)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
OnDeserializeUnrecognizedAttribute(String, String)

Získá hodnotu určující, zda neznámý atribut je zjištěn během deserializace.

(Zděděno od ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Získá hodnotu určující, zda neznámý prvek je zjištěn během deserializace.

(Zděděno od ConfigurationElement)
OnRequiredPropertyNotFound(String)

Vyvolá výjimku, pokud nebyla nalezena požadovaná vlastnost.

(Zděděno od ConfigurationElement)
PostDeserialize()

Volal po deserializaci.

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

Volá se před serializací.

(Zděděno od ConfigurationElement)
Reset(ConfigurationElement)

Obnoví vnitřní stav objektu ConfigurationElement , včetně zámků a kolekcí vlastností.

(Zděděno od ConfigurationElement)
ResetModified()

Obnoví 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í nerozčleněné 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 pro ConfigurationElement objekt a všechny dílčí prvky.

(Zděděno od ConfigurationElement)
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName)

Určuje, zda zadaný prvek má být serializován, když je hierarchie objektu konfigurace serializována pro zadanou cílovou verzi .NET Framework.

ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement)

Určuje, zda má být zadaná vlastnost serializována, pokud je hierarchie objektu konfigurace serializována pro zadanou cílovou verzi .NET Framework.

ShouldSerializeSectionInTargetVersion(FrameworkName)

Určuje, zda aktuální ConfigurationSection instance by měla být serializována, pokud je hierarchie objektů konfigurace serializována pro zadanou cílovou verzi .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é