ConfigurationSection Класс

Определение

Представляет раздел в файле конфигурации.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
Наследование
ConfigurationSection
Производный

Примеры

В следующем примере показано, как реализовать пользовательский раздел программным способом.The following example shows how to implement a custom section programmatically.

Полный пример, демонстрирующий реализацию и использование пользовательского раздела, реализованного с помощью модели с атрибутами, см. в разделе 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

Следующий пример является выдержкой из файла конфигурации, так как он применяется к предыдущему примеру.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>

Комментарии

Для реализации пользовательского типа раздела используется класс ConfigurationSection.You use the ConfigurationSection class to implement a custom section type. Расширьте класс ConfigurationSection, чтобы обеспечить настраиваемую обработку и программный доступ к пользовательским разделам конфигурации.Extend the ConfigurationSection class to provide custom handling and programmatic access to custom configuration sections. Сведения о том, как использовать пользовательские разделы конфигурации, см. в разделе инструкции. Создание пользовательских разделов конфигурации с помощью ConfigurationSection.For information about how use custom configuration sections, see How to: Create Custom Configuration Sections Using ConfigurationSection.

Раздел регистрирует тип обработки с записью в элементе configSections.A section registers its handling type with an entry in the configSections element. Например, см. фрагмент файла конфигурации, показанный в разделе "пример".For an example, see the configuration file excerpt shown in the Example section.

Примечание

В предыдущих версиях .NET Framework для программного внесения изменений в параметры конфигурации использовались обработчики разделов конфигурации.In previous versions of the .NET Framework, configuration section handlers were used to make changes to configuration settings programmatically. Теперь все разделы конфигурации по умолчанию представлены классами, которые расширяют класс ConfigurationSection.Now, all the default configuration sections are represented by classes that extend the ConfigurationSection class.

Примечания для тех, кто реализует этот метод

Для создания пользовательских разделов конфигурации можно использовать программную или декларативную модель кодирования (с атрибутами):You can use a programmatic or a declarative (attributed) coding model to create custom configuration sections: — Программная модель.- Programmatic model. Эта модель требует, чтобы для каждого атрибута раздела вы создали свойство для получения или задания его значения и добавили его во внутренний контейнер свойств базового базового класса ConfigurationElement.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.

— Декларативная модель.- Declarative model. Эта упрощенная модель, также называемая моделью с атрибутами, позволяет определить атрибут раздела с помощью свойства и использовать его с атрибутами.This simpler model, also called the attributed model, allows you to define a section attribute by using a property and decorating it with attributes. Эти атрибуты указывают системе конфигурации ASP.NET о типах свойств и их значениях по умолчанию.These attributes instruct the ASP.NET configuration system about the property types and their default values. С этой информацией, полученной с помощью отражения, система конфигурации ASP.NET создает объекты свойств раздела и выполняет необходимую инициализацию.With this information, obtained through reflection, the ASP.NET configuration system creates the section property objects and performs the required initialization.

Класс Configuration обеспечивает программный доступ для редактирования файлов конфигурации.The Configuration class allows programmatic access for editing configuration files. Вы можете получить доступ к этим файлам для чтения или записи следующим образом:You can access these files for reading or writing as follows: Читая.- Reading. Для чтения сведений о конфигурации используется GetSection(String) или GetSectionGroup(String).You use GetSection(String) or GetSectionGroup(String) to read configuration information. Обратите внимание, что чтение пользователя или процесса должно иметь следующие разрешения:Note that the user or process that reads must have the following permissions: — Разрешение на чтение файла конфигурации на текущем уровне иерархии конфигурации.- Read permission on the configuration file at the current configuration hierarchy level.

— Разрешения на чтение всех родительских файлов конфигурации.- Read permissions on all the parent configuration files.

Если приложению требуется доступ только для чтения к собственной конфигурации, рекомендуется использовать GetSection перегруженные методы в случае веб-приложений или метод GetSection(String) в случае клиентских приложений.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.

Эти методы предоставляют доступ к кэшированным значениям конфигурации для текущего приложения, что обеспечивает лучшую производительность по сравнению с классом Configuration.These methods provide access to the cached configuration values for the current application, which has better performance than the Configuration class.


При использовании статического метода GetSection, который принимает параметр path, параметр path должен ссылаться на приложение, в котором выполняется код. в противном случае параметр игнорируется, и возвращаются сведения о конфигурации для текущего приложения.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.

Текста.- Writing. Для записи сведений о конфигурации используется один из Save методов.You use one of the Save methods to write configuration information. Обратите внимание, что пользователь или процесс, выполняющий запись, должен иметь следующие разрешения:Note that the user or process that writes must have the following permissions: — Разрешение на запись в файл конфигурации и каталог на текущем уровне иерархии конфигурации.- Write permission on the configuration file and directory at the current configuration hierarchy level. — Разрешения на чтение для всех файлов конфигурации.- Read permissions on all the configuration files.

Конструкторы

ConfigurationSection()

Инициализирует новый экземпляр класса ConfigurationSection.Initializes a new instance of the ConfigurationSection class.

Свойства

CurrentConfiguration

Возвращает ссылку на экземпляр Configuration верхнего уровня, представляющий иерархию конфигурации, к которой относится текущий экземпляр ConfigurationElement.Gets a reference to the top-level Configuration instance that represents the configuration hierarchy that the current ConfigurationElement instance belongs to.

(Унаследовано от ConfigurationElement)
ElementInformation

Возвращает объект ElementInformation, содержащий неизменяемую информацию и функциональность объекта ConfigurationElement.Gets an ElementInformation object that contains the non-customizable information and functionality of the ConfigurationElement object.

(Унаследовано от ConfigurationElement)
ElementProperty

Возвращает объект ConfigurationElementProperty, представляющий сам объект ConfigurationElement.Gets the ConfigurationElementProperty object that represents the ConfigurationElement object itself.

(Унаследовано от ConfigurationElement)
EvaluationContext

Возвращает объект ContextInformation для объекта ConfigurationElement.Gets the ContextInformation object for the ConfigurationElement object.

(Унаследовано от ConfigurationElement)
HasContext

Возвращает значение, указывающее, имеет ли свойство CurrentConfiguration значение null.Gets a value that indicates whether the CurrentConfiguration property is null.

(Унаследовано от ConfigurationElement)
Item[ConfigurationProperty]

Возвращает или задает свойство или атрибут данного элемента конфигурации.Gets or sets a property or attribute of this configuration element.

(Унаследовано от ConfigurationElement)
Item[String]

Получает или задает свойство, атрибут или дочерний элемент этого элемента конфигурации.Gets or sets a property, attribute, or child element of this configuration element.

(Унаследовано от ConfigurationElement)
LockAllAttributesExcept

Возвращает коллекцию заблокированных атрибутов.Gets the collection of locked attributes.

(Унаследовано от ConfigurationElement)
LockAllElementsExcept

Возвращает коллекцию заблокированных элементов.Gets the collection of locked elements.

(Унаследовано от ConfigurationElement)
LockAttributes

Возвращает коллекцию заблокированных атрибутов.Gets the collection of locked attributes.

(Унаследовано от ConfigurationElement)
LockElements

Возвращает коллекцию заблокированных элементов.Gets the collection of locked elements.

(Унаследовано от ConfigurationElement)
LockItem

Возвращает или задает значение, указывающее, заблокирован ли элемент.Gets or sets a value indicating whether the element is locked.

(Унаследовано от ConfigurationElement)
Properties

Возвращает коллекцию свойств.Gets the collection of properties.

(Унаследовано от ConfigurationElement)
SectionInformation

Возвращает объект SectionInformation, содержащий неизменяемую информацию и функциональность объекта ConfigurationSection.Gets a SectionInformation object that contains the non-customizable information and functionality of the ConfigurationSection object.

Методы

DeserializeElement(XmlReader, Boolean)

Считывает XML из файла конфигурации.Reads XML from the configuration file.

(Унаследовано от ConfigurationElement)
DeserializeSection(XmlReader)

Считывает XML из файла конфигурации.Reads XML from the configuration file.

Equals(Object)

Сравнивает текущий экземпляр ConfigurationElement с указанным объектом.Compares the current ConfigurationElement instance to the specified object.

(Унаследовано от ConfigurationElement)
GetHashCode()

Получает уникальное значение, представляющее текущий экземпляр ConfigurationElement.Gets a unique value representing the current ConfigurationElement instance.

(Унаследовано от ConfigurationElement)
GetRuntimeObject()

Возвращает пользовательский объект при переопределении в производном классе.Returns a custom object when overridden in a derived class.

GetTransformedAssemblyString(String)

Возвращает преобразованную версию указанного имени сборки.Returns the transformed version of the specified assembly name.

(Унаследовано от ConfigurationElement)
GetTransformedTypeString(String)

Возвращает преобразованную версию указанного имени типа.Returns the transformed version of the specified type name.

(Унаследовано от ConfigurationElement)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
Init()

Возвращает объект ConfigurationElement в исходное состояние.Sets the ConfigurationElement object to its initial state.

(Унаследовано от ConfigurationElement)
InitializeDefault()

Используется для инициализации набора значений по умолчанию для объекта ConfigurationElement.Used to initialize a default set of values for the ConfigurationElement object.

(Унаследовано от ConfigurationElement)
IsModified()

При реализации в производном классе указывает, был ли изменен данный элемент конфигурации с момента последнего сохранения или загрузки.Indicates whether this configuration element has been modified since it was last saved or loaded when implemented in a derived class.

IsReadOnly()

Получает значение, показывающее, является ли объект ConfigurationElement доступным только для чтения.Gets a value indicating whether the ConfigurationElement object is read-only.

(Унаследовано от ConfigurationElement)
ListErrors(IList)

Добавляет ошибку "недействительное свойство" в данном объекте ConfigurationElement и всех его дочерних элементах к переданному списку.Adds the invalid-property errors in this ConfigurationElement object, and in all subelements, to the passed list.

(Унаследовано от ConfigurationElement)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
OnDeserializeUnrecognizedAttribute(String, String)

Возвращает значение, указывающее, встретился ли неизвестный атрибут при десериализации.Gets a value indicating whether an unknown attribute is encountered during deserialization.

(Унаследовано от ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Возвращает значение, указывающее, встретился ли неизвестный элемент при десериализации.Gets a value indicating whether an unknown element is encountered during deserialization.

(Унаследовано от ConfigurationElement)
OnRequiredPropertyNotFound(String)

Выдает исключение, если требуемое свойство не найдено.Throws an exception when a required property is not found.

(Унаследовано от ConfigurationElement)
PostDeserialize()

Вызывается после десериализации.Called after deserialization.

(Унаследовано от ConfigurationElement)
PreSerialize(XmlWriter)

Вызывается до сериализации.Called before serialization.

(Унаследовано от ConfigurationElement)
Reset(ConfigurationElement)

Восстанавливает внутреннее состояние объекта ConfigurationElement, включая блокировки и коллекции свойств.Resets the internal state of the ConfigurationElement object, including the locks and the properties collections.

(Унаследовано от ConfigurationElement)
ResetModified()

Переустанавливает значение метода IsModified() в false при реализации в производном классе.Resets the value of the IsModified() method to false when implemented in a derived class.

SerializeElement(XmlWriter, Boolean)

Записывает содержание данного элемента конфигурации в файл конфигурации при реализации в производном классе.Writes the contents of this configuration element to the configuration file when implemented in a derived class.

(Унаследовано от ConfigurationElement)
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode)

Создает XML-строку, содержащую разъединенное представление об объекте ConfigurationSection, как об отдельном разделе, записываемым в файл.Creates an XML string containing an unmerged view of the ConfigurationSection object as a single section to write to a file.

SerializeToXmlElement(XmlWriter, String)

Записывает внешние теги данного элемента конфигурации в файл конфигурации при реализации в производном классе.Writes the outer tags of this configuration element to the configuration file when implemented in a derived class.

(Унаследовано от ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Задает для свойства указанное значение.Sets a property to the specified value.

(Унаследовано от ConfigurationElement)
SetReadOnly()

Задает свойство IsReadOnly() для объекта ConfigurationElement и всех подчиненных элементов.Sets the IsReadOnly() property for the ConfigurationElement object and all subelements.

(Унаследовано от ConfigurationElement)
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName)

Указывает, нужно ли выполнять сериализацию указанного элемента во время сериализации иерархии объекта конфигурации для заданной целевой версии .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)

Указывает, нужно ли выполнять сериализацию указанного свойства во время сериализации иерархии объекта конфигурации для заданной целевой версии .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)

Указывает, нужно ли выполнять сериализацию текущего экземпляра ConfigurationSection во время сериализации иерархии объекта конфигурации для заданной целевой версии .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()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Изменяет объект ConfigurationElement для удаления всех значений, которые не должны сохраняться.Modifies the ConfigurationElement object to remove all values that should not be saved.

(Унаследовано от ConfigurationElement)

Применяется к

Дополнительно