ConfigurationSectionCollection 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 kumpulan bagian terkait dalam file konfigurasi.
public ref class ConfigurationSectionCollection sealed : System::Collections::Specialized::NameObjectCollectionBase
public sealed class ConfigurationSectionCollection : System.Collections.Specialized.NameObjectCollectionBase
[System.Serializable]
public sealed class ConfigurationSectionCollection : System.Collections.Specialized.NameObjectCollectionBase
type ConfigurationSectionCollection = class
inherit NameObjectCollectionBase
[<System.Serializable>]
type ConfigurationSectionCollection = class
inherit NameObjectCollectionBase
Public NotInheritable Class ConfigurationSectionCollection
Inherits NameObjectCollectionBase
- Warisan
- Atribut
Contoh
Contoh kode berikut menunjukkan cara menggunakan ConfigurationSectionCollection kelas .
using System;
using System.Configuration;
using System.Collections;
namespace Samples.AspNet.Configuration
{
// Define a custom section programmatically.
public sealed class CustomSection :
ConfigurationSection
{
// The collection (property bag) that contains
// the section properties.
private static ConfigurationPropertyCollection _Properties;
// The FileName property.
private static readonly ConfigurationProperty _FileName =
new ConfigurationProperty("fileName",
typeof(string), "default.txt",
ConfigurationPropertyOptions.IsRequired);
// The MasUsers 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;
}
}
[StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\",
MinLength = 1, MaxLength = 60)]
public string FileName
{
get
{
return (string)this["fileName"];
}
set
{
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;
}
}
}
class UsingCustomSectionCollection
{
// Create a custom section.
static void CreateSection()
{
try
{
CustomSection customSection;
// Get the current configuration file.
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
// Create the section entry
// in the <configSections> and the
// related target section in <configuration>.
if (config.Sections["CustomSection"] == null)
{
customSection = new CustomSection();
config.Sections.Add("CustomSection", customSection);
customSection.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
}
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
static void GetAllKeys()
{
try
{
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
ConfigurationSectionCollection sections =
config.Sections;
foreach (string key in sections.Keys)
{
Console.WriteLine(
"Key value: {0}", key);
}
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
static void Clear()
{
try
{
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
config.Sections.Clear();
config.Save(ConfigurationSaveMode.Full);
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
static void GetSection()
{
try
{
CustomSection customSection =
ConfigurationManager.GetSection(
"CustomSection") as CustomSection;
if (customSection == null)
Console.WriteLine(
"Failed to load CustomSection.");
else
{
// Display section information
Console.WriteLine("Defaults:");
Console.WriteLine("File Name: {0}",
customSection.FileName);
Console.WriteLine("Max Users: {0}",
customSection.MaxUsers);
Console.WriteLine("Max Idle Time: {0}",
customSection.MaxIdleTime);
}
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
static void GetEnumerator()
{
try
{
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
ConfigurationSectionCollection sections =
config.Sections;
IEnumerator secEnum =
sections.GetEnumerator();
int i = 0;
while (secEnum.MoveNext())
{
string setionName = sections.GetKey(i);
Console.WriteLine(
"Section name: {0}", setionName);
i += 1;
}
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
static void GetKeys()
{
try
{
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
ConfigurationSectionCollection sections =
config.Sections;
foreach (string key in sections.Keys)
{
Console.WriteLine(
"Key value: {0}", key);
}
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
static void GetItems()
{
try
{
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
ConfigurationSectionCollection sections =
config.Sections;
ConfigurationSection section1 =
sections["runtime"];
ConfigurationSection section2 =
sections[0];
Console.WriteLine(
"Section1: {0}", section1.SectionInformation.Name);
Console.WriteLine(
"Section2: {0}", section2.SectionInformation.Name);
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
static void Remove()
{
try
{
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
CustomSection customSection =
config.GetSection(
"CustomSection") as CustomSection;
if (customSection != null)
{
config.Sections.Remove("CustomSection");
customSection.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
}
else
Console.WriteLine(
"CustomSection does not exists.");
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
static void AddSection()
{
try
{
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
CustomSection customSection =
new CustomSection();
string index =
config.Sections.Count.ToString();
customSection.FileName =
"newFile" + index + ".txt";
string sectionName = "CustomSection" + index;
TimeSpan ts = new TimeSpan(0, 15, 0);
customSection.MaxIdleTime = ts;
customSection.MaxUsers = 100;
config.Sections.Add(sectionName, customSection);
customSection.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
// Exercise the collection.
// Uncomment the function you want to exercise.
// Start with CreateSection().
static void Main(string[] args)
{
CreateSection();
// AddSection();
// GetSection();
// GetEnumerator();
// GetAllKeys();
// GetKeys();
// GetItems();
// Remove();
// Clear();
}
}
}
Imports System.Configuration
Imports System.Collections
' Define a custom section programmatically.
Public NotInheritable Class CustomSection
Inherits ConfigurationSection
' The collection (property bag) that contains
' the section properties.
Private Shared _Properties _
As ConfigurationPropertyCollection
' The FileName property.
Private Shared _FileName _
As New ConfigurationProperty("fileName", _
GetType(String), "default.txt", _
ConfigurationPropertyOptions.IsRequired)
' The MasUsers property.
Private Shared _MaxUsers _
As New ConfigurationProperty("maxUsers", _
GetType(Long), Fix(1000), _
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
<StringValidator( _
InvalidCharacters:=" ~!@#$%^&*()[]{}/;'""|\", _
MinLength:=1, MaxLength:=60)> _
Public Property FileName() As String
Get
Return CStr(Me("fileName"))
End Get
Set(ByVal value As String)
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
Class UsingCustomSectionCollection
' Create a custom section.
Shared Sub CreateSection()
Try
Dim customSection As CustomSection
' Get the current configuration file.
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
' Create the section entry
' in the <configSections> and the
' related target section in <configuration>.
If config.Sections("CustomSection") Is Nothing Then
customSection = New CustomSection()
config.Sections.Add("CustomSection", customSection)
customSection.SectionInformation.ForceSave = True
config.Save(ConfigurationSaveMode.Full)
End If
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
Shared Sub GetAllKeys()
Try
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
Dim sections _
As ConfigurationSectionCollection = _
config.Sections
Dim key As String
For Each key In sections.Keys
Console.WriteLine("Key value: {0}", key)
Next key
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
Shared Sub Clear()
Try
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
config.Sections.Clear()
config.Save( _
ConfigurationSaveMode.Full)
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
Shared Sub GetSection()
Try
Dim customSection _
As CustomSection = _
ConfigurationManager.GetSection( _
"CustomSection")
If customSection Is Nothing Then
Console.WriteLine("Failed to load CustomSection.")
Else
' Display section information
Console.WriteLine("Defaults:")
Console.WriteLine("File Name: {0}", _
customSection.FileName)
Console.WriteLine("Max Users: {0}", _
customSection.MaxUsers)
Console.WriteLine("Max Idle Time: {0}", _
customSection.MaxIdleTime)
End If
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
Shared Sub GetEnumerator()
Try
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
Dim sections _
As ConfigurationSectionCollection = _
config.Sections
Dim secEnum _
As IEnumerator = sections.GetEnumerator()
Dim i As Integer = 0
While secEnum.MoveNext()
Dim setionName _
As String = sections.GetKey(i)
Console.WriteLine( _
"Section name: {0}", setionName)
i += 1
End While
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
Shared Sub GetKeys()
Try
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
Dim sections _
As ConfigurationSectionCollection = _
config.Sections
Dim key As String
For Each key In sections.Keys
Console.WriteLine("Key value: {0}", key)
Next key
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
Shared Sub GetItems()
Try
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
Dim sections _
As ConfigurationSectionCollection = _
config.Sections
Dim section1 As ConfigurationSection = _
sections.Item("runtime")
Dim section2 As ConfigurationSection = _
sections.Item(0)
Console.WriteLine("Section1: {0}", _
section1.SectionInformation.Name)
Console.WriteLine("Section2: {0}", _
section2.SectionInformation.Name)
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
Shared Sub Remove()
Try
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
Dim customSection As CustomSection = _
config.GetSection("CustomSection")
If Not (customSection Is Nothing) Then
config.Sections.Remove("CustomSection")
customSection.SectionInformation.ForceSave = True
config.Save(ConfigurationSaveMode.Full)
Else
Console.WriteLine( _
"CustomSection does not exists.")
End If
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
Shared Sub AddSection()
Try
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
Dim customSection _
As New CustomSection()
Dim index As String = _
config.Sections.Count.ToString()
customSection.FileName = _
"newFile" + index + ".txt"
Dim sectionName As String = _
"CustomSection" + index
Dim ts As New TimeSpan(0, 15, 0)
customSection.MaxIdleTime = ts
customSection.MaxUsers = 100
config.Sections.Add(sectionName, customSection)
customSection.SectionInformation.ForceSave = True
config.Save(ConfigurationSaveMode.Full)
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
' Exercise the collection.
' Uncomment the function you want to exercise.
' Start with CreateSection().
Public Overloads Shared Sub Main(ByVal args() As String)
CreateSection()
' AddSection()
' GetSection()
' GetEnumerator()
' GetAllKeys()
' GetKeys()
GetItems()
' Clear()
' Remove()
End Sub
End Class
Contoh berikut adalah kutipan file konfigurasi yang digunakan oleh contoh sebelumnya.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="CustomSection"
type="Samples.AspNet.Configuration.CustomSection, ConfigurationSectionCollection, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" restartOnExternalChanges="true" />
</configSections>
<CustomSection fileName="default.txt" maxUsers="1000"
maxIdleTime="00:05:00" />
</configuration>
Keterangan
ConfigurationSectionCollection Gunakan kelas untuk melakukan iterasi melalui kumpulan ConfigurationSection objek. Anda dapat mengakses koleksi objek ini menggunakan Sections properti atau Sections properti .
Kelas ConfigurationSectionCollection ini juga digunakan dalam pembuatan jenis kustom yang memperluas ConfigurationSection kelas .
Properti
Count |
Mendapatkan jumlah bagian dalam objek ini ConfigurationSectionCollection . |
Count |
Mendapatkan jumlah pasangan kunci/nilai yang terkandung dalam NameObjectCollectionBase instans. (Diperoleh dari NameObjectCollectionBase) |
IsReadOnly |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah NameObjectCollectionBase instans bersifat baca-saja. (Diperoleh dari NameObjectCollectionBase) |
Item[Int32] |
Mendapatkan objek yang ditentukan ConfigurationSection . |
Item[String] |
Mendapatkan objek yang ditentukan ConfigurationSection . |
Keys |
Mendapatkan kunci ke semua ConfigurationSection objek yang terkandung dalam objek ini ConfigurationSectionCollection . |
Keys |
Mendapatkan instans NameObjectCollectionBase.KeysCollection yang berisi semua kunci dalam NameObjectCollectionBase instans. (Diperoleh dari NameObjectCollectionBase) |
Metode
Add(String, ConfigurationSection) |
ConfigurationSection Menambahkan objek ke ConfigurationSectionCollection objek . |
BaseAdd(String, Object) |
Menambahkan entri dengan kunci dan nilai yang ditentukan ke NameObjectCollectionBase dalam instans. (Diperoleh dari NameObjectCollectionBase) |
BaseClear() |
Menghapus semua entri dari NameObjectCollectionBase instans. (Diperoleh dari NameObjectCollectionBase) |
BaseGet(Int32) |
Mendapatkan nilai entri pada indeks NameObjectCollectionBase instans yang ditentukan. (Diperoleh dari NameObjectCollectionBase) |
BaseGet(String) |
Mendapatkan nilai entri pertama dengan kunci yang ditentukan dari NameObjectCollectionBase instans. (Diperoleh dari NameObjectCollectionBase) |
BaseGetAllKeys() |
Mengembalikan String array yang berisi semua kunci dalam NameObjectCollectionBase instans. (Diperoleh dari NameObjectCollectionBase) |
BaseGetAllValues() |
Mengembalikan Object array yang berisi semua nilai dalam NameObjectCollectionBase instans. (Diperoleh dari NameObjectCollectionBase) |
BaseGetAllValues(Type) |
Mengembalikan array dari jenis yang ditentukan yang berisi semua nilai dalam NameObjectCollectionBase instans. (Diperoleh dari NameObjectCollectionBase) |
BaseGetKey(Int32) |
Mendapatkan kunci entri pada indeks NameObjectCollectionBase instans yang ditentukan. (Diperoleh dari NameObjectCollectionBase) |
BaseHasKeys() |
Mendapatkan nilai yang menunjukkan apakah NameObjectCollectionBase instans berisi entri yang kuncinya bukan |
BaseRemove(String) |
Menghapus entri dengan kunci yang ditentukan dari NameObjectCollectionBase instans. (Diperoleh dari NameObjectCollectionBase) |
BaseRemoveAt(Int32) |
Menghapus entri pada indeks NameObjectCollectionBase instans yang ditentukan. (Diperoleh dari NameObjectCollectionBase) |
BaseSet(Int32, Object) |
Mengatur nilai entri pada indeks NameObjectCollectionBase instans yang ditentukan. (Diperoleh dari NameObjectCollectionBase) |
BaseSet(String, Object) |
Mengatur nilai entri pertama dengan kunci yang ditentukan dalam NameObjectCollectionBase instans, jika ditemukan; jika tidak, menambahkan entri dengan kunci dan nilai yang ditentukan ke NameObjectCollectionBase dalam instans. (Diperoleh dari NameObjectCollectionBase) |
Clear() |
Menghapus objek ini ConfigurationSectionCollection . |
CopyTo(ConfigurationSection[], Int32) |
Menyalin objek ini ConfigurationSectionCollection ke array. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
Get(Int32) |
Mendapatkan objek yang ditentukan yang terkandung ConfigurationSection dalam objek ini ConfigurationSectionCollection . |
Get(String) |
Mendapatkan objek yang ditentukan yang terkandung ConfigurationSection dalam objek ini ConfigurationSectionCollection . |
GetEnumerator() |
Mendapatkan enumerator yang dapat melakukan iterasi melalui objek ini ConfigurationSectionCollection . |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetKey(Int32) |
Mendapatkan kunci objek yang ditentukan yang terkandung ConfigurationSection dalam objek ini ConfigurationSectionCollection . |
GetObjectData(SerializationInfo, StreamingContext) |
Kedaluwarsa.
Digunakan oleh sistem selama serialisasi. |
GetObjectData(SerializationInfo, StreamingContext) |
Kedaluwarsa.
ISerializable Mengimplementasikan antarmuka dan mengembalikan data yang diperlukan untuk membuat serialisasi NameObjectCollectionBase instans. (Diperoleh dari NameObjectCollectionBase) |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
OnDeserialization(Object) |
ISerializable Mengimplementasikan antarmuka dan meningkatkan peristiwa deserialisasi saat deserialisasi selesai. (Diperoleh dari NameObjectCollectionBase) |
Remove(String) |
Menghapus objek yang ditentukan ConfigurationSection dari obyek ini ConfigurationSectionCollection . |
RemoveAt(Int32) |
Menghapus objek yang ditentukan ConfigurationSection dari obyek ini ConfigurationSectionCollection . |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
ICollection.CopyTo(Array, Int32) |
Menyalin seluruh NameObjectCollectionBase ke satu dimensi Arrayyang kompatibel, dimulai dari indeks array target yang ditentukan. (Diperoleh dari NameObjectCollectionBase) |
ICollection.IsSynchronized |
Mendapatkan nilai yang menunjukkan apakah akses ke objek disinkronkan NameObjectCollectionBase (utas aman). (Diperoleh dari NameObjectCollectionBase) |
ICollection.SyncRoot |
Mendapatkan objek yang dapat digunakan untuk menyinkronkan akses ke NameObjectCollectionBase objek. (Diperoleh dari NameObjectCollectionBase) |
Metode Ekstensi
Cast<TResult>(IEnumerable) |
Mentransmisikan elemen dari ke IEnumerable jenis yang ditentukan. |
OfType<TResult>(IEnumerable) |
Memfilter elemen berdasarkan IEnumerable jenis yang ditentukan. |
AsParallel(IEnumerable) |
Mengaktifkan paralelisasi kueri. |
AsQueryable(IEnumerable) |
Mengonversi menjadi IEnumerableIQueryable. |