ConfigurationSection Třída

Definice

Představuje oddíl v konfiguračním souboru.Represents a section within a configuration file.

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 prostřednictvím kódu programu.The following example shows how to implement a custom section programmatically.

Kompletní příklad, který ukazuje, jak implementovat a použít vlastní oddíl implementovaný pomocí modelu s atributy, naleznete v tématu ConfigurationElement .For a complete example that shows how to implement and use a custom section implemented using the attributed model, see 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ýpisem konfiguračního souboru, který se vztahuje k předchozímu příkladu.The following example is an excerpt of the configuration file as it applies to the previous example.

<?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 můžete použít ConfigurationSection k implementaci vlastního typu oddílu.You use the ConfigurationSection class to implement a custom section type. Rozšíříte ConfigurationSection třídu tak, aby poskytovala vlastní zpracování a programový přístup k vlastním konfiguračním oddílům.Extend the ConfigurationSection class to provide custom handling and programmatic access to custom configuration sections. Informace o tom, jak používat vlastní konfigurační oddíly, najdete v tématu Postupy: vytváření vlastních oddílů konfigurace pomocí oddílu ConfigurationSection.For information about how use custom configuration sections, see How to: Create Custom Configuration Sections Using ConfigurationSection.

Oddíl registruje svůj typ manipulace se záznamem v configSections elementu.A section registers its handling type with an entry in the configSections element. Příklad najdete v sekci konfigurační soubor, který je uveden v části příklad.For an example, see the configuration file excerpt shown in the Example section.

Poznámka

V předchozích verzích .NET Framework byly obslužné rutiny konfiguračního oddílu použity k provedení změn v nastavení konfigurace programově.In previous versions of the .NET Framework, configuration section handlers were used to make changes to configuration settings programmatically. Nyní všechny výchozí konfigurační oddíly jsou reprezentovány třídami, které tuto ConfigurationSection třídu rozšířily.Now, all the default configuration sections are represented by classes that extend the ConfigurationSection class.

Poznámky pro implementátory

Pomocí programového nebo deklarativního kódovacího modelu (s atributy) můžete vytvořit vlastní konfigurační oddíly:You can use a programmatic or a declarative (attributed) coding model to create custom configuration sections: -Programový model.- Programmatic model. Tento model vyžaduje, aby pro každý oddíl byl vytvořen vlastnost pro získání nebo nastavení jeho hodnoty a přidání do kontejneru vnitřních objektů základní ConfigurationElement třídy.This model requires that for each section attribute you create a property to get or set its value and add it to the internal property bag of the underlying ConfigurationElement base class.

– Deklarativní model.- Declarative model. Tento jednodušší model, označovaný také jako atributový model, umožňuje definovat atribut Section pomocí vlastnosti a upravení jej s atributy.This simpler model, also called the attributed model, allows you to define a section attribute by using a property and decorating it with attributes. Tyto atributy instruují konfigurační systém ASP.NET o typech vlastností a jejich výchozích hodnotách.These attributes instruct the ASP.NET configuration system about the property types and their default values. S těmito informacemi získanými pomocí reflexe systém ASP.NET Configuration vytvoří objekty vlastností oddílu a provede požadovanou inicializaci.With this information, obtained through reflection, the ASP.NET configuration system creates the section property objects and performs the required initialization.

ConfigurationTřída umožňuje programový přístup pro úpravu konfiguračních souborů.The Configuration class allows programmatic access for editing configuration files. K těmto souborům můžete přistupovat pro čtení nebo zápis následujícím způsobem:You can access these files for reading or writing as follows: Čtení.- Reading. Můžete použít GetSection(String) nebo GetSectionGroup(String) ke čtení informací o konfiguraci.You use GetSection(String) or GetSectionGroup(String) to read configuration information. Všimněte si, že uživatel nebo proces, který čte, musí mít následující oprávnění:Note that the user or process that reads must have the following permissions: – Oprávnění číst ke konfiguračnímu souboru na úrovni aktuální konfigurační hierarchie.- Read permission on the configuration file at the current configuration hierarchy level.

– Oprávnění ke čtení pro všechny nadřazené konfigurační soubory.- Read permissions on all the parent configuration files.

Pokud vaše aplikace potřebuje přístup jen pro čtení ke své vlastní konfiguraci, doporučuje se použít GetSection přetížené metody v případě webových aplikací nebo v GetSection(String) případě klientských aplikací.If your application needs read-only access to its own configuration, it is recommended you use the GetSection overloaded methods in the case of Web applications, or the GetSection(String) method in the case of client applications.

Tyto metody poskytují přístup k hodnotám konfigurace uložených v mezipaměti pro aktuální aplikaci, která má vyšší výkon než Configuration Třída.These methods provide access to the cached configuration values for the current application, which has better performance than the Configuration class.


Použijete-li statickou GetSection metodu, která přebírá path parametr, path parametr musí odkazovat na aplikaci, ve které je kód spuštěn. v opačném případě je parametr ignorován a jsou vráceny informace o konfiguraci pro aktuálně spuštěnou aplikaci.If you use a static GetSection method that takes a path parameter, the path parameter must refer to the application in which the code is running; otherwise, the parameter is ignored and configuration information for the currently-running application is returned.

Zapsat.- Writing. SaveK zápisu informací o konfiguraci se používá jedna z metod.You use one of the Save methods to write configuration information. Všimněte si, že uživatel nebo proces, který zápis zapisuje, musí mít následující oprávnění:Note that the user or process that writes must have the following permissions: – Oprávnění zapisovat ke konfiguračnímu souboru a adresáři na úrovni aktuální hierarchie konfigurace.- Write permission on the configuration file and directory at the current configuration hierarchy level.

– Oprávnění ke čtení pro všechny konfigurační soubory.- Read permissions on all the configuration files.

Konstruktory

ConfigurationSection()

Inicializuje novou instanci ConfigurationSection třídy.Initializes a new instance of the ConfigurationSection class.

Vlastnosti

CurrentConfiguration

Získá odkaz na instanci nejvyšší úrovně Configuration , která představuje hierarchii konfigurace, do které aktuální ConfigurationElement instance patří.Gets a reference to the top-level Configuration instance that represents the configuration hierarchy that the current ConfigurationElement instance belongs to.

(Zděděno od ConfigurationElement)
ElementInformation

Získává ElementInformation objekt, který obsahuje informace a funkce objektu, které nejsou přizpůsobitelné ConfigurationElement .Gets an ElementInformation object that contains the non-customizable information and functionality of the ConfigurationElement object.

(Zděděno od ConfigurationElement)
ElementProperty

Získá ConfigurationElementProperty objekt, který reprezentuje ConfigurationElement samotný objekt.Gets the ConfigurationElementProperty object that represents the ConfigurationElement object itself.

(Zděděno od ConfigurationElement)
EvaluationContext

Získá ContextInformation objekt pro ConfigurationElement objekt.Gets the ContextInformation object for the ConfigurationElement object.

(Zděděno od ConfigurationElement)
HasContext

Získá hodnotu, která označuje, zda CurrentConfiguration je vlastnost null .Gets a value that indicates whether the CurrentConfiguration property is null.

(Zděděno od ConfigurationElement)
Item[ConfigurationProperty]

Získá nebo nastaví vlastnost nebo atribut tohoto elementu konfigurace.Gets or sets a property or attribute of this configuration element.

(Zděděno od ConfigurationElement)
Item[String]

Získá nebo nastaví vlastnost, atribut nebo podřízený element tohoto elementu konfigurace.Gets or sets a property, attribute, or child element of this configuration element.

(Zděděno od ConfigurationElement)
LockAllAttributesExcept

Získá kolekci uzamčených atributů.Gets the collection of locked attributes.

(Zděděno od ConfigurationElement)
LockAllElementsExcept

Získá kolekci uzamčených elementů.Gets the collection of locked elements.

(Zděděno od ConfigurationElement)
LockAttributes

Získá kolekci uzamčených atributů.Gets the collection of locked attributes.

(Zděděno od ConfigurationElement)
LockElements

Získá kolekci uzamčených elementů.Gets the collection of locked elements.

(Zděděno od ConfigurationElement)
LockItem

Získává nebo nastavuje hodnotu, která označuje, jestli je element zamčený.Gets or sets a value indicating whether the element is locked.

(Zděděno od ConfigurationElement)
Properties

Získá kolekci vlastností.Gets the collection of properties.

(Zděděno od ConfigurationElement)
SectionInformation

Získá SectionInformation objekt, který obsahuje informace a funkce objektu, které nejsou přizpůsobitelné ConfigurationSection .Gets a SectionInformation object that contains the non-customizable information and functionality of the ConfigurationSection object.

Metody

DeserializeElement(XmlReader, Boolean)

Přečte XML z konfiguračního souboru.Reads XML from the configuration file.

(Zděděno od ConfigurationElement)
DeserializeSection(XmlReader)

Přečte XML z konfiguračního souboru.Reads XML from the configuration file.

Equals(Object)

Porovná aktuální ConfigurationElement instanci se zadaným objektem.Compares the current ConfigurationElement instance to the specified object.

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

Získá jedinečnou hodnotu představující aktuální ConfigurationElement instanci.Gets a unique value representing the current ConfigurationElement instance.

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

Vrátí vlastní objekt, pokud je přepsán v odvozené třídě.Returns a custom object when overridden in a derived class.

GetTransformedAssemblyString(String)

Vrátí transformované verze zadaného názvu sestavení.Returns the transformed version of the specified assembly name.

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

Vrátí transformované verze zadaného názvu typu.Returns the transformed version of the specified type name.

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

Získá Type aktuální instanci.Gets the Type of the current instance.

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

Nastaví ConfigurationElement objekt na počáteční stav.Sets the ConfigurationElement object to its initial state.

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

Slouží k inicializaci výchozí sady hodnot pro ConfigurationElement objekt.Used to initialize a default set of values for the ConfigurationElement object.

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

Určuje, zda byl tento prvek konfigurace změněn od posledního uložení nebo načten při implementaci v odvozené třídě.Indicates whether this configuration element has been modified since it was last saved or loaded when implemented in a derived class.

IsReadOnly()

Načte hodnotu, která označuje, zda ConfigurationElement je objekt určen jen pro čtení.Gets a value indicating whether the ConfigurationElement object is read-only.

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

Přidá chyby neplatných vlastností v tomto ConfigurationElement objektu a ve všech podelementech do seznamu předaných.Adds the invalid-property errors in this ConfigurationElement object, and in all subelements, to the passed list.

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

Vytvoří kopii aktuálního seznamu Object .Creates a shallow copy of the current Object.

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

Načte hodnotu, která označuje, jestli je při deserializaci zjištěn neznámý atribut.Gets a value indicating whether an unknown attribute is encountered during deserialization.

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

Načte hodnotu, která označuje, jestli je během deserializace zjištěn neznámý element.Gets a value indicating whether an unknown element is encountered during deserialization.

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

Vyvolá výjimku, pokud nebyla nalezena požadovaná vlastnost.Throws an exception when a required property is not found.

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

Volá se po deserializaci.Called after deserialization.

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

Volá se před serializací.Called before serialization.

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

Obnoví vnitřní stav ConfigurationElement objektu, včetně zámků a kolekcí vlastností.Resets the internal state of the ConfigurationElement object, including the locks and the properties collections.

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

Obnoví hodnotu IsModified() metody na, false Pokud je implementována v odvozené třídě.Resets the value of the IsModified() method to false when implemented in a derived class.

SerializeElement(XmlWriter, Boolean)

Zapíše obsah tohoto elementu konfigurace do konfiguračního souboru při implementaci v odvozené třídě.Writes the contents of this configuration element to the configuration file when implemented in a derived class.

(Zděděno od ConfigurationElement)
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode)

Vytvoří řetězec XML obsahující nesloučené zobrazení ConfigurationSection objektu jako jeden oddíl k zápisu do souboru.Creates an XML string containing an unmerged view of the ConfigurationSection object as a single section to write to a file.

SerializeToXmlElement(XmlWriter, String)

Zapisuje vnější značky tohoto elementu konfigurace do konfiguračního souboru při implementaci v odvozené třídě.Writes the outer tags of this configuration element to the configuration file when implemented in a derived class.

(Zděděno od ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Nastaví vlastnost na zadanou hodnotu.Sets a property to the specified value.

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

Nastaví IsReadOnly() vlastnost pro ConfigurationElement objekt a všechny dílčí prvky.Sets the IsReadOnly() property for the ConfigurationElement object and all subelements.

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

Určuje, zda by měl být při serializaci hierarchie objektu konfigurace pro zadanou cílovou verzi .NET Framework serializován zadaný element.Indicates whether the specified element should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.

ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement)

Určuje, zda má být zadaná vlastnost serializována při serializaci hierarchie objektů konfigurace pro zadanou cílovou verzi .NET Framework.Indicates whether the specified property should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.

ShouldSerializeSectionInTargetVersion(FrameworkName)

Určuje, zda ConfigurationSection má být aktuální instance serializována při serializaci hierarchie objektů konfigurace pro zadanou cílovou verzi .NET Framework.Indicates whether the current ConfigurationSection instance should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.

ToString()

Vrátí řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Upraví ConfigurationElement objekt tak, aby se odebraly všechny hodnoty, které by se neměly ukládat.Modifies the ConfigurationElement object to remove all values that should not be saved.

(Zděděno od ConfigurationElement)

Platí pro

Viz také