ConfigurationSection Klasa

Definicja

Reprezentuje sekcję w pliku konfiguracji.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
Dziedziczenie
ConfigurationSection
Pochodne

Przykłady

Poniższy przykład pokazuje, jak programowo zaimplementować sekcję niestandardową.The following example shows how to implement a custom section programmatically.

Pełny przykład pokazujący sposób implementacji i używania sekcji niestandardowej zaimplementowanej przy użyciu modelu z atrybutami można znaleźć w temacie 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

Poniższy przykład to fragment pliku konfiguracji, który ma zastosowanie do poprzedniego przykładu.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>

Uwagi

Klasa ConfigurationSection służy do implementowania niestandardowego typu sekcji.You use the ConfigurationSection class to implement a custom section type. Rozwiń klasę ConfigurationSection, aby zapewnić niestandardową obsługę i dostęp programistyczny do sekcji konfiguracji niestandardowej.Extend the ConfigurationSection class to provide custom handling and programmatic access to custom configuration sections. Aby uzyskać informacje na temat korzystania z sekcji konfiguracji niestandardowej, zobacz jak: Tworzenie niestandardowych sekcji konfiguracji za pomocą elementu ConfigurationSection.For information about how use custom configuration sections, see How to: Create Custom Configuration Sections Using ConfigurationSection.

Sekcja rejestruje swój typ obsługi z wpisem w configSections elementu.A section registers its handling type with an entry in the configSections element. Aby zapoznać się z przykładem, zobacz fragment pliku konfiguracji przedstawiony w sekcji przykład.For an example, see the configuration file excerpt shown in the Example section.

Uwaga

W poprzednich wersjach .NET Framework programy obsługi sekcji konfiguracji były używane do programistycznego wprowadzania zmian w ustawieniach konfiguracji.In previous versions of the .NET Framework, configuration section handlers were used to make changes to configuration settings programmatically. Teraz wszystkie domyślne sekcje konfiguracji są reprezentowane przez klasy, które zwiększają klasę ConfigurationSection.Now, all the default configuration sections are represented by classes that extend the ConfigurationSection class.

Uwagi dotyczące implementowania

Możesz użyć programistycznego lub deklaracyjnego modelu kodowania, aby utworzyć sekcje konfiguracji niestandardowej:You can use a programmatic or a declarative (attributed) coding model to create custom configuration sections: -Model programistyczny.- Programmatic model. Ten model wymaga, aby dla każdego atrybutu sekcji utworzyć właściwość w celu pobrania lub ustawienia jej wartości i dodania jej do wewnętrznego zbioru właściwości bazowej ConfigurationElement klasie bazowej.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.

-Deklaratywny model.- Declarative model. Ten prostszy model, nazywany również modelem atrybutu, umożliwia zdefiniowanie atrybutu Section przy użyciu właściwości i dekorowania nazwy go z atrybutami.This simpler model, also called the attributed model, allows you to define a section attribute by using a property and decorating it with attributes. Te atrybuty instruują system konfiguracji ASP.NET o typach właściwości i ich wartościach domyślnych.These attributes instruct the ASP.NET configuration system about the property types and their default values. Dzięki tym informacjom uzyskanym w wyniku odbicia system konfiguracji ASP.NET tworzy obiekty właściwości sekcji i wykonuje wymaganą inicjalizację.With this information, obtained through reflection, the ASP.NET configuration system creates the section property objects and performs the required initialization.

Klasa Configuration umożliwia programistyczny dostęp do edytowania plików konfiguracji.The Configuration class allows programmatic access for editing configuration files. Dostęp do tych plików można uzyskać w następujący sposób:You can access these files for reading or writing as follows: Odczytu.- Reading. Aby odczytać informacje o konfiguracji, należy użyć GetSection(String) lub GetSectionGroup(String).You use GetSection(String) or GetSectionGroup(String) to read configuration information. Należy pamiętać, że użytkownik lub proces odczytywania musi mieć następujące uprawnienia:Note that the user or process that reads must have the following permissions: -Uprawnienia do odczytu pliku konfiguracji na bieżącym poziomie hierarchii konfiguracji.- Read permission on the configuration file at the current configuration hierarchy level.

— Uprawnienia do odczytu wszystkich nadrzędnych plików konfiguracji.- Read permissions on all the parent configuration files.

Jeśli aplikacja wymaga dostępu tylko do odczytu do własnej konfiguracji, zaleca się używanie GetSection przeciążonych metod w przypadku aplikacji sieci Web lub metody GetSection(String) w przypadku aplikacji klienckich.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.

Te metody zapewniają dostęp do buforowanych wartości konfiguracyjnych dla bieżącej aplikacji, które mają lepszą wydajność niż Klasa Configuration.These methods provide access to the cached configuration values for the current application, which has better performance than the Configuration class.


Jeśli używasz statycznej metody GetSection, która przyjmuje parametr path, parametr path musi odwoływać się do aplikacji, w której uruchomiono kod; w przeciwnym razie parametr jest ignorowany, a informacje o konfiguracji aktualnie uruchomionej aplikacji są zwracane.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.

Napisane.- Writing. Aby napisać informacje o konfiguracji, należy użyć jednej z Save metod.You use one of the Save methods to write configuration information. Należy pamiętać, że użytkownik lub proces zapisu musi mieć następujące uprawnienia:Note that the user or process that writes must have the following permissions: -Uprawnienia do zapisu w pliku konfiguracji i katalogu na bieżącym poziomie hierarchii konfiguracji.- Write permission on the configuration file and directory at the current configuration hierarchy level. — Uprawnienia do odczytu wszystkich plików konfiguracji.- Read permissions on all the configuration files.

Konstruktory

ConfigurationSection()

Inicjuje nowe wystąpienie klasy ConfigurationSection.Initializes a new instance of the ConfigurationSection class.

Właściwości

CurrentConfiguration

Pobiera odwołanie do wystąpienia Configuration najwyższego poziomu, które reprezentuje hierarchię konfiguracji, do której należy bieżące wystąpienie ConfigurationElement.Gets a reference to the top-level Configuration instance that represents the configuration hierarchy that the current ConfigurationElement instance belongs to.

(Odziedziczone po ConfigurationElement)
ElementInformation

Pobiera obiekt ElementInformation, który zawiera informacje, które nie są dostosowywane i funkcje obiektu ConfigurationElement.Gets an ElementInformation object that contains the non-customizable information and functionality of the ConfigurationElement object.

(Odziedziczone po ConfigurationElement)
ElementProperty

Pobiera obiekt ConfigurationElementProperty, który reprezentuje obiekt ConfigurationElement.Gets the ConfigurationElementProperty object that represents the ConfigurationElement object itself.

(Odziedziczone po ConfigurationElement)
EvaluationContext

Pobiera obiekt ContextInformation dla ConfigurationElement obiektu.Gets the ContextInformation object for the ConfigurationElement object.

(Odziedziczone po ConfigurationElement)
HasContext

Pobiera wartość wskazującą, czy właściwość CurrentConfiguration jest null.Gets a value that indicates whether the CurrentConfiguration property is null.

(Odziedziczone po ConfigurationElement)
Item[ConfigurationProperty]

Pobiera lub ustawia właściwość lub atrybut tego elementu konfiguracji.Gets or sets a property or attribute of this configuration element.

(Odziedziczone po ConfigurationElement)
Item[String]

Pobiera lub ustawia właściwość, atrybut lub element podrzędny tego elementu konfiguracji.Gets or sets a property, attribute, or child element of this configuration element.

(Odziedziczone po ConfigurationElement)
LockAllAttributesExcept

Pobiera kolekcję zablokowanych atrybutów.Gets the collection of locked attributes.

(Odziedziczone po ConfigurationElement)
LockAllElementsExcept

Pobiera kolekcję zablokowanych elementów.Gets the collection of locked elements.

(Odziedziczone po ConfigurationElement)
LockAttributes

Pobiera kolekcję zablokowanych atrybutów.Gets the collection of locked attributes.

(Odziedziczone po ConfigurationElement)
LockElements

Pobiera kolekcję zablokowanych elementów.Gets the collection of locked elements.

(Odziedziczone po ConfigurationElement)
LockItem

Pobiera lub ustawia wartość wskazującą, czy element jest zablokowany.Gets or sets a value indicating whether the element is locked.

(Odziedziczone po ConfigurationElement)
Properties

Pobiera kolekcję właściwości.Gets the collection of properties.

(Odziedziczone po ConfigurationElement)
SectionInformation

Pobiera obiekt SectionInformation, który zawiera informacje, które nie są dostosowywane i funkcje obiektu ConfigurationSection.Gets a SectionInformation object that contains the non-customizable information and functionality of the ConfigurationSection object.

Metody

DeserializeElement(XmlReader, Boolean)

Odczytuje dane XML z pliku konfiguracyjnego.Reads XML from the configuration file.

(Odziedziczone po ConfigurationElement)
DeserializeSection(XmlReader)

Odczytuje dane XML z pliku konfiguracyjnego.Reads XML from the configuration file.

Equals(Object)

Porównuje bieżące wystąpienie ConfigurationElement z określonym obiektem.Compares the current ConfigurationElement instance to the specified object.

(Odziedziczone po ConfigurationElement)
GetHashCode()

Pobiera unikatową wartość reprezentującą bieżące wystąpienie ConfigurationElement.Gets a unique value representing the current ConfigurationElement instance.

(Odziedziczone po ConfigurationElement)
GetRuntimeObject()

Zwraca obiekt niestandardowy, gdy jest zastępowany w klasie pochodnej.Returns a custom object when overridden in a derived class.

GetTransformedAssemblyString(String)

Zwraca przekształconą wersję określonej nazwy zestawu.Returns the transformed version of the specified assembly name.

(Odziedziczone po ConfigurationElement)
GetTransformedTypeString(String)

Zwraca przekształconą wersję określonej nazwy typu.Returns the transformed version of the specified type name.

(Odziedziczone po ConfigurationElement)
GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
Init()

Ustawia obiekt ConfigurationElement do stanu początkowego.Sets the ConfigurationElement object to its initial state.

(Odziedziczone po ConfigurationElement)
InitializeDefault()

Służy do inicjowania domyślnego zestawu wartości dla obiektu ConfigurationElement.Used to initialize a default set of values for the ConfigurationElement object.

(Odziedziczone po ConfigurationElement)
IsModified()

Wskazuje, czy ten element konfiguracji został zmodyfikowany od czasu ostatniego zapisania lub załadowania w przypadku zaimplementowania w klasie pochodnej.Indicates whether this configuration element has been modified since it was last saved or loaded when implemented in a derived class.

IsReadOnly()

Pobiera wartość wskazującą, czy ConfigurationElement obiekt jest tylko do odczytu.Gets a value indicating whether the ConfigurationElement object is read-only.

(Odziedziczone po ConfigurationElement)
ListErrors(IList)

Dodaje błędy nieprawidłowej właściwości w tym obiekcie ConfigurationElement i we wszystkich podelementach do listy zakończonych.Adds the invalid-property errors in this ConfigurationElement object, and in all subelements, to the passed list.

(Odziedziczone po ConfigurationElement)
MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
OnDeserializeUnrecognizedAttribute(String, String)

Pobiera wartość wskazującą, czy podczas deserializacji napotkano nieznany atrybut.Gets a value indicating whether an unknown attribute is encountered during deserialization.

(Odziedziczone po ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Pobiera wartość wskazującą, czy nieznany element został napotkany podczas deserializacji.Gets a value indicating whether an unknown element is encountered during deserialization.

(Odziedziczone po ConfigurationElement)
OnRequiredPropertyNotFound(String)

Zgłasza wyjątek, gdy wymagana właściwość nie zostanie znaleziona.Throws an exception when a required property is not found.

(Odziedziczone po ConfigurationElement)
PostDeserialize()

Wywoływana po deserializacji.Called after deserialization.

(Odziedziczone po ConfigurationElement)
PreSerialize(XmlWriter)

Wywoływana przed serializacji.Called before serialization.

(Odziedziczone po ConfigurationElement)
Reset(ConfigurationElement)

Resetuje stan wewnętrzny obiektu ConfigurationElement, łącznie z blokadami i kolekcjami właściwości.Resets the internal state of the ConfigurationElement object, including the locks and the properties collections.

(Odziedziczone po ConfigurationElement)
ResetModified()

Resetuje wartość metody IsModified(), która ma być false zaimplementowana w klasie pochodnej.Resets the value of the IsModified() method to false when implemented in a derived class.

SerializeElement(XmlWriter, Boolean)

Zapisuje zawartość tego elementu konfiguracji w pliku konfiguracji w przypadku zaimplementowania w klasie pochodnej.Writes the contents of this configuration element to the configuration file when implemented in a derived class.

(Odziedziczone po ConfigurationElement)
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode)

Tworzy ciąg XML zawierający Niescalony widok obiektu ConfigurationSection jako pojedynczą sekcję do zapisu w pliku.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 zewnętrzne Tagi tego elementu konfiguracji w pliku konfiguracji po zaimplementowaniu w klasie pochodnej.Writes the outer tags of this configuration element to the configuration file when implemented in a derived class.

(Odziedziczone po ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Ustawia właściwość na określoną wartość.Sets a property to the specified value.

(Odziedziczone po ConfigurationElement)
SetReadOnly()

Ustawia właściwość IsReadOnly() dla obiektu ConfigurationElement i wszystkich podelementach.Sets the IsReadOnly() property for the ConfigurationElement object and all subelements.

(Odziedziczone po ConfigurationElement)
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName)

Wskazuje, czy określony element powinien być serializowany, gdy hierarchia obiektu konfiguracji jest serializowana dla określonej wersji docelowej .NET Framework.NET Framework.Indicates whether the specified element should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.NET Framework.

ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement)

Wskazuje, czy określona właściwość powinna być serializowana, gdy Hierarchia obiektów konfiguracji jest serializowana dla określonej wersji docelowej .NET Framework.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.NET Framework.

ShouldSerializeSectionInTargetVersion(FrameworkName)

Wskazuje, czy bieżące wystąpienie ConfigurationSection powinno być serializowane, gdy Hierarchia obiektów konfiguracji jest serializowana dla określonej wersji docelowej .NET Framework.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.NET Framework.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Modyfikuje obiekt ConfigurationElement, aby usunąć wszystkie wartości, które nie powinny być zapisywane.Modifies the ConfigurationElement object to remove all values that should not be saved.

(Odziedziczone po ConfigurationElement)

Dotyczy

Zobacz też