Share via


ConfigurationSection Kelas

Definisi

Mewakili bagian dalam file konfigurasi.

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

Contoh

Contoh berikut menunjukkan cara mengimplementasikan bagian kustom secara terprogram.

Untuk contoh lengkap yang menunjukkan cara mengimplementasikan dan menggunakan bagian kustom yang diimplementasikan menggunakan model yang diatribusikan, lihat 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

Contoh berikut adalah kutipan file konfigurasi seperti yang berlaku untuk contoh sebelumnya.

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

Keterangan

Anda menggunakan ConfigurationSection kelas untuk mengimplementasikan jenis bagian kustom. ConfigurationSection Perluas kelas untuk menyediakan penanganan kustom dan akses terprogram ke bagian konfigurasi kustom. Untuk informasi tentang cara menggunakan bagian konfigurasi kustom, lihat Cara: Membuat Bagian Konfigurasi Kustom Menggunakan ConfigurationSection.

Bagian mendaftarkan jenis penanganannya dengan entri dalam configSections elemen . Misalnya, lihat kutipan file konfigurasi yang ditampilkan di bagian Contoh.

Catatan

Dalam versi .NET Framework sebelumnya, penangan bagian konfigurasi digunakan untuk membuat perubahan pada pengaturan konfigurasi secara terprogram. Sekarang, semua bagian konfigurasi default diwakili oleh kelas yang memperluas ConfigurationSection kelas.

Catatan Bagi Implementer

Anda dapat menggunakan model pengodean terprogram atau deklaratif (atribut) untuk membuat bagian konfigurasi kustom:

  • Model terprogram. Model ini mengharuskan untuk setiap atribut bagian Anda membuat properti untuk mendapatkan atau mengatur nilainya dan menambahkannya ke tas properti internal dari kelas dasar yang mendasar ConfigurationElement .

  • Model deklaratif. Model yang lebih sederhana ini, juga disebut model atribut, memungkinkan Anda menentukan atribut bagian dengan menggunakan properti dan menghiasnya dengan atribut. Atribut ini menginstruksikan sistem konfigurasi ASP.NET tentang jenis properti dan nilai defaultnya. Dengan informasi ini, diperoleh melalui refleksi, sistem konfigurasi ASP.NET membuat objek properti bagian dan melakukan inisialisasi yang diperlukan.

Kelas ini Configuration memungkinkan akses terprogram untuk mengedit file konfigurasi. Anda dapat mengakses file-file ini untuk membaca atau menulis sebagai berikut:

  • Membaca. Anda menggunakan GetSection(String) atau GetSectionGroup(String) untuk membaca informasi konfigurasi. Perhatikan bahwa pengguna atau proses yang membaca harus memiliki izin berikut:

    • Izin baca pada file konfigurasi pada tingkat hierarki konfigurasi saat ini.

    • Membaca izin pada semua file konfigurasi induk.

    Jika aplikasi Anda memerlukan akses baca-saja ke konfigurasinya sendiri, disarankan Anda menggunakan GetSection metode yang kelebihan beban dalam kasus aplikasi Web, atau GetSection(String) metode dalam kasus aplikasi klien.

    Metode ini menyediakan akses ke nilai konfigurasi cache untuk aplikasi saat ini, yang memiliki performa lebih baik daripada Configuration kelas .

Catatan: Jika Anda menggunakan metode statis GetSection yang mengambil path parameter, path parameter harus merujuk ke aplikasi tempat kode berjalan; jika tidak, parameter diabaikan dan informasi konfigurasi untuk aplikasi yang sedang berjalan dikembalikan.

  • Menulis. Anda menggunakan salah Save satu metode untuk menulis informasi konfigurasi. Perhatikan bahwa pengguna atau proses yang menulis harus memiliki izin berikut:

    • Izin tulis pada file konfigurasi dan direktori pada tingkat hierarki konfigurasi saat ini.

    • Membaca izin pada semua file konfigurasi.

Konstruktor

ConfigurationSection()

Menginisialisasi instans baru kelas ConfigurationSection.

Properti

CurrentConfiguration

Mendapatkan referensi ke instans tingkat Configuration atas yang mewakili hierarki konfigurasi tempat instans saat ini ConfigurationElement berada.

(Diperoleh dari ConfigurationElement)
ElementInformation

ElementInformation Mendapatkan objek yang berisi informasi dan fungsionalitas ConfigurationElement objek yang tidak dapat disesuaikan.

(Diperoleh dari ConfigurationElement)
ElementProperty

ConfigurationElementProperty Mendapatkan objek yang mewakili objek itu ConfigurationElement sendiri.

(Diperoleh dari ConfigurationElement)
EvaluationContext

ContextInformation Mendapatkan objek untuk ConfigurationElement objek .

(Diperoleh dari ConfigurationElement)
HasContext

Mendapatkan nilai yang menunjukkan apakah CurrentConfiguration properti adalah null.

(Diperoleh dari ConfigurationElement)
Item[ConfigurationProperty]

Mendapatkan atau mengatur properti atau atribut elemen konfigurasi ini.

(Diperoleh dari ConfigurationElement)
Item[String]

Mendapatkan atau mengatur properti, atribut, atau elemen anak dari elemen konfigurasi ini.

(Diperoleh dari ConfigurationElement)
LockAllAttributesExcept

Mendapatkan koleksi atribut terkunci.

(Diperoleh dari ConfigurationElement)
LockAllElementsExcept

Mendapatkan koleksi elemen terkunci.

(Diperoleh dari ConfigurationElement)
LockAttributes

Mendapatkan koleksi atribut terkunci.

(Diperoleh dari ConfigurationElement)
LockElements

Mendapatkan koleksi elemen terkunci.

(Diperoleh dari ConfigurationElement)
LockItem

Mendapatkan atau menetapkan nilai yang menunjukkan apakah elemen dikunci.

(Diperoleh dari ConfigurationElement)
Properties

Mendapatkan koleksi properti.

(Diperoleh dari ConfigurationElement)
SectionInformation

SectionInformation Mendapatkan objek yang berisi informasi dan fungsionalitas ConfigurationSection objek yang tidak dapat disesuaikan.

Metode

DeserializeElement(XmlReader, Boolean)

Membaca XML dari file konfigurasi.

(Diperoleh dari ConfigurationElement)
DeserializeSection(XmlReader)

Membaca XML dari file konfigurasi.

Equals(Object)

Membandingkan instans saat ini ConfigurationElement dengan objek yang ditentukan.

(Diperoleh dari ConfigurationElement)
GetHashCode()

Mendapatkan nilai unik yang mewakili instans saat ini ConfigurationElement .

(Diperoleh dari ConfigurationElement)
GetRuntimeObject()

Mengembalikan objek kustom saat ditimpa di kelas turunan.

GetTransformedAssemblyString(String)

Mengembalikan versi yang diubah dari nama rakitan yang ditentukan.

(Diperoleh dari ConfigurationElement)
GetTransformedTypeString(String)

Mengembalikan versi yang ditransformasi dari nama jenis yang ditentukan.

(Diperoleh dari ConfigurationElement)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
Init()

Menyetel objek ke ConfigurationElement status awalnya.

(Diperoleh dari ConfigurationElement)
InitializeDefault()

Digunakan untuk menginisialisasi sekumpulan nilai default untuk ConfigurationElement objek.

(Diperoleh dari ConfigurationElement)
IsModified()

Menunjukkan apakah elemen konfigurasi ini telah dimodifikasi sejak terakhir disimpan atau dimuat saat diimplementasikan di kelas turunan.

IsReadOnly()

Mendapatkan nilai yang menunjukkan apakah ConfigurationElement objek bersifat baca-saja.

(Diperoleh dari ConfigurationElement)
ListErrors(IList)

Menambahkan kesalahan properti yang tidak valid dalam objek ini ConfigurationElement , dan di semua sublemen, ke daftar yang diteruskan.

(Diperoleh dari ConfigurationElement)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
OnDeserializeUnrecognizedAttribute(String, String)

Mendapatkan nilai yang menunjukkan apakah atribut yang tidak diketahui ditemui selama deserialisasi.

(Diperoleh dari ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Mendapatkan nilai yang menunjukkan apakah elemen yang tidak diketahui ditemui selama deserialisasi.

(Diperoleh dari ConfigurationElement)
OnRequiredPropertyNotFound(String)

Melemparkan pengecualian ketika properti yang diperlukan tidak ditemukan.

(Diperoleh dari ConfigurationElement)
PostDeserialize()

Dipanggil setelah deserialisasi.

(Diperoleh dari ConfigurationElement)
PreSerialize(XmlWriter)

Dipanggil sebelum serialisasi.

(Diperoleh dari ConfigurationElement)
Reset(ConfigurationElement)

Mengatur ulang status ConfigurationElement internal objek, termasuk kunci dan koleksi properti.

(Diperoleh dari ConfigurationElement)
ResetModified()

Mengatur ulang nilai metode ke IsModified()false saat diimplementasikan di kelas turunan.

SerializeElement(XmlWriter, Boolean)

Menulis konten elemen konfigurasi ini ke file konfigurasi saat diimplementasikan di kelas turunan.

(Diperoleh dari ConfigurationElement)
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode)

Membuat string XML yang berisi tampilan ConfigurationSection objek yang tidak tergabung sebagai satu bagian untuk menulis ke file.

SerializeToXmlElement(XmlWriter, String)

Menulis tag luar elemen konfigurasi ini ke file konfigurasi saat diimplementasikan di kelas turunan.

(Diperoleh dari ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Mengatur properti ke nilai yang ditentukan.

(Diperoleh dari ConfigurationElement)
SetReadOnly()

IsReadOnly() Mengatur properti untuk ConfigurationElement objek dan semua sublemen.

(Diperoleh dari ConfigurationElement)
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName)

Menunjukkan apakah elemen yang ditentukan harus diserialisasikan saat hierarki objek konfigurasi diserialisasikan untuk versi target yang ditentukan dari .NET Framework.

ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement)

Menunjukkan apakah properti yang ditentukan harus diserialisasikan saat hierarki objek konfigurasi diserialisasikan untuk versi target yang ditentukan dari .NET Framework.

ShouldSerializeSectionInTargetVersion(FrameworkName)

Menunjukkan apakah instans saat ini ConfigurationSection harus diserialisasikan ketika hierarki objek konfigurasi diserialisasikan untuk versi target yang ditentukan dari .NET Framework.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Memodifikasi ConfigurationElement objek untuk menghapus semua nilai yang seharusnya tidak disimpan.

(Diperoleh dari ConfigurationElement)

Berlaku untuk

Lihat juga