ConfigurationSection Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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 yang 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 |
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() |
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 ketika 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) |