ConfigurationSectionGroupCollection Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje kolekcję ConfigurationSectionGroup obiektów.
public ref class ConfigurationSectionGroupCollection sealed : System::Collections::Specialized::NameObjectCollectionBase
public sealed class ConfigurationSectionGroupCollection : System.Collections.Specialized.NameObjectCollectionBase
[System.Serializable]
public sealed class ConfigurationSectionGroupCollection : System.Collections.Specialized.NameObjectCollectionBase
type ConfigurationSectionGroupCollection = class
inherit NameObjectCollectionBase
[<System.Serializable>]
type ConfigurationSectionGroupCollection = class
inherit NameObjectCollectionBase
Public NotInheritable Class ConfigurationSectionGroupCollection
Inherits NameObjectCollectionBase
- Dziedziczenie
- Atrybuty
Przykłady
W poniższym przykładzie kodu pokazano, jak używać ConfigurationSectionGroupCollection klasy.
using System;
using System.Configuration;
using System.Collections;
namespace Samples.Config
{
// Define a custom section.
public sealed class CustomSection :
ConfigurationSection
{
public CustomSection()
{ }
[ConfigurationProperty("fileName", DefaultValue = "default.txt",
IsRequired = true, IsKey = false)]
[StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\",
MinLength = 1, MaxLength = 60)]
public string FileName
{
get
{
return (string)this["fileName"];
}
set
{
this["fileName"] = value;
}
}
[ConfigurationProperty("maxUsers", DefaultValue = (long)10000,
IsRequired = false)]
[LongValidator(MinValue = 1, MaxValue = 10000000,
ExcludeRange = false)]
public long MaxUsers
{
get
{
return (long)this["maxUsers"];
}
set
{
this["maxUsers"] = value;
}
}
[ConfigurationProperty("maxIdleTime",
DefaultValue = "0:10:0",
IsRequired = false)]
[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 group.
public sealed class CustomSectionGroup :
ConfigurationSectionGroup
{
public CustomSectionGroup()
{
}
public CustomSection Custom
{
get { return (CustomSection)
Sections.Get("CustomSection");}
}
}
class UsingCustomSectionGroupCollection
{
// Create a custom section group.
static void CreateSectionGroup()
{
try
{
CustomSectionGroup customSectionGroup;
// Get the current configuration file.
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
// Create the section group entry
// in the <configSections> and the
// related target section in <configuration>.
if (config.SectionGroups["CustomGroup"] == null)
{
customSectionGroup = new CustomSectionGroup();
config.SectionGroups.Add("CustomGroup",
customSectionGroup);
customSectionGroup.ForceDeclaration(true);
config.Save(ConfigurationSaveMode.Full);
}
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
// Get the collection group keys i.e.,
// the group names.
//static void GetAllKeys()
//{
// try
// {
// System.Configuration.Configuration config =
// ConfigurationManager.OpenExeConfiguration(
// ConfigurationUserLevel.None);
// ConfigurationSectionGroupCollection groups =
// config.SectionGroups;
// groups.
// foreach (string name in groups.AllKeys)
// {
// Console.WriteLine(
// "Key value: {0}", name);
// }
// }
// catch (ConfigurationErrorsException err)
// {
// Console.WriteLine(err.ToString());
// }
//}
static void Clear()
{
try
{
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
config.SectionGroups.Clear();
config.Save(ConfigurationSaveMode.Full);
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
static void GetGroup()
{
try
{
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
ConfigurationSectionGroup customGroup =
config.SectionGroups.Get("CustomGroup");
if (customGroup == null)
Console.WriteLine(
"Failed to load CustomSection.");
else
{
// Display section information
Console.WriteLine("Section group name: {0}",
customGroup.SectionGroupName);
Console.WriteLine("Name: {0}",
customGroup.Name);
Console.WriteLine("Type: {0}",
customGroup.Type);
}
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
static void GetEnumerator()
{
try
{
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
ConfigurationSectionGroupCollection groups =
config.SectionGroups;
IEnumerator groupEnum =
groups.GetEnumerator();
int i = 0;
while (groupEnum.MoveNext())
{
string groupName = groups.GetKey(i);
Console.WriteLine(
"Group name: {0}", groupName);
i += 1;
}
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
// Get the collection keys i.e., the
// group names.
static void GetKeys()
{
try
{
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
ConfigurationSectionGroupCollection groups =
config.SectionGroups;
foreach (string key in groups.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);
ConfigurationSectionGroupCollection groups =
config.SectionGroups;
ConfigurationSectionGroup group1 =
groups.Get("system.net");
ConfigurationSectionGroup group2 =
groups.Get("system.web");
Console.WriteLine(
"Group1: {0}", group1.Name);
Console.WriteLine(
"Group2: {0}", group2.Name);
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
static void Remove()
{
try
{
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
ConfigurationSectionGroup customGroup =
config.SectionGroups.Get("CustomGroup");
if (customGroup != null)
{
config.SectionGroups.Remove("CustomGroup");
config.Save(ConfigurationSaveMode.Full);
}
else
Console.WriteLine(
"CustomGroup does not exists.");
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
// Add custom section to the group.
static void AddSection()
{
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>.
ConfigurationSectionGroup customGroup;
customGroup = config.SectionGroups.Get("CustomGroup");
if (customGroup.Sections.Get("CustomSection") == null)
{
customSection = new CustomSection();
customGroup.Sections.Add("CustomSection",
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 CreateSectionGroup().
static void Main(string[] args)
{
CreateSectionGroup();
AddSection();
// GetAllKeys();
// GetGroup();
// GetEnumerator();
// GetKeys();
// GetItems();
// Remove();
// Clear();
}
}
}
Imports System.Configuration
Imports System.Collections
' Define a custom section.
NotInheritable Public Class CustomSection
Inherits ConfigurationSection
Public Sub New()
End Sub
<ConfigurationProperty("fileName", _
DefaultValue:="default.txt", _
IsRequired:=True, _
IsKey:=False), _
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
<ConfigurationProperty("maxUsers", _
DefaultValue:=10000, _
IsRequired:=False), _
LongValidator(MinValue:=1, _
MaxValue:=10000000, _
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
<ConfigurationProperty("maxIdleTime", _
DefaultValue:="0:10:0", _
IsRequired:=False), _
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
' Define a custom section group.
NotInheritable Public Class CustomSectionGroup
Inherits ConfigurationSectionGroup
Public Sub New()
End Sub
Public ReadOnly Property Custom() As CustomSection
Get
Return CType(Sections.Get("CustomSection"), _
CustomSection)
End Get
End Property
End Class
Class UsingCustomSectionGroupCollection
' Create a custom section group.
Shared Sub CreateSectionGroup()
Try
Dim customSectionGroup As CustomSectionGroup
' Get the current configuration file.
Dim config As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
' Create the section group entry
' in the <configSections> and the
' related target section in <configuration>.
If config.SectionGroups("CustomGroup") Is Nothing Then
customSectionGroup = New CustomSectionGroup()
config.SectionGroups.Add("CustomGroup", customSectionGroup)
customSectionGroup.ForceDeclaration(True)
config.Save(ConfigurationSaveMode.Full)
End If
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
' Get the collection group keys i.e.,
' the group names.
'Shared Sub GetAllKeys()
' Try
' Dim config _
' As System.Configuration.Configuration = _
' ConfigurationManager.OpenExeConfiguration( _
' ConfigurationUserLevel.None)
' Dim groups _
' As ConfigurationSectionGroupCollection = _
' config.SectionGroups
' Dim name As String
' For Each name In groups.AllKeys
' Console.WriteLine("Key value: {0}", name)
' Next name
' 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.SectionGroups.Clear()
config.Save(ConfigurationSaveMode.Full)
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
Shared Sub GetGroup()
Try
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
Dim groups _
As ConfigurationSectionGroupCollection = _
config.SectionGroups
Dim customGroup _
As ConfigurationSectionGroup = _
groups.Get("CustomGroup")
If customGroup Is Nothing Then
Console.WriteLine( _
"Failed to load CustomGroup.")
Else
' Display section information
Console.WriteLine("Name: {0}", _
customGroup.Name)
Console.WriteLine("Type: {0}", _
customGroup.Type)
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 groups _
As ConfigurationSectionGroupCollection = _
config.SectionGroups
Dim groupEnum As IEnumerator = _
groups.GetEnumerator()
Dim i As Integer = 0
While groupEnum.MoveNext()
Dim groupName As String = groups.GetKey(i)
Console.WriteLine("Group name: {0}", groupName)
i += 1
End While
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
' Get the collection keys i.e., the
' group names.
Shared Sub GetKeys()
Try
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
Dim groups _
As ConfigurationSectionGroupCollection = _
config.SectionGroups
Dim key As String
For Each key In groups.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 groups _
As ConfigurationSectionGroupCollection = _
config.SectionGroups
Dim group1 As ConfigurationSectionGroup = _
groups.Get("system.net")
Dim group2 As ConfigurationSectionGroup = _
groups.Get("system.web")
Console.WriteLine("Group1: {0}", group1.Name)
Console.WriteLine("Group2: {0}", group2.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 groups _
As ConfigurationSectionGroupCollection = _
config.SectionGroups
Dim customGroup _
As ConfigurationSectionGroup = groups.Get("CustomGroup")
If Not (customGroup Is Nothing) Then
config.SectionGroups.Remove("CustomGroup")
config.Save(ConfigurationSaveMode.Full)
Else
Console.WriteLine( _
"CustomGroup does not exists.")
End If
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
' Add custom section to the group.
Shared Sub AddSection()
Try
Dim customSection As CustomSection
' Get the current configuration file.
Dim config _
As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.None)
Dim groups _
As ConfigurationSectionGroupCollection = _
config.SectionGroups
' Create the section entry
' in the <configSections> and the
' related target section in <configuration>.
Dim customGroup As ConfigurationSectionGroup
customGroup = groups.Get("CustomGroup")
If customGroup.Sections.Get( _
"CustomSection") Is Nothing Then
customSection = New CustomSection()
customGroup.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
' Exercise the collection.
' Uncomment the function you want to exercise.
' Start with CreateSectionGroup().
Public Overloads Shared Sub Main(ByVal args() As String)
CreateSectionGroup()
AddSection()
' GetEnumerator();
' GetKeys();
' GetItems();
' Remove();
' Clear();
End Sub
End Class
Poniższy przykład to fragment pliku konfiguracji używanego w poprzednim przykładzie.
<?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>
Uwagi
ConfigurationSectionGroupCollection Użyj klasy, aby iterować przez kolekcję ConfigurationSectionGroup obiektów. Dostęp do tej kolekcji obiektów można uzyskać przy użyciu SectionGroups właściwości lub SectionGroups właściwości.
Klasa ConfigurationSectionGroupCollection jest również używana w tworzeniu typów niestandardowych, które rozszerzają klasę ConfigurationSectionGroup .
Właściwości
Count |
Pobiera liczbę grup sekcji w kolekcji. |
Count |
Pobiera liczbę par klucz/wartość zawartych w wystąpieniu NameObjectCollectionBase . (Odziedziczone po NameObjectCollectionBase) |
IsReadOnly |
Pobiera lub ustawia wartość wskazującą, czy NameObjectCollectionBase wystąpienie jest tylko do odczytu. (Odziedziczone po NameObjectCollectionBase) |
Item[Int32] |
ConfigurationSectionGroup Pobiera obiekt, którego indeks jest określony z kolekcji. |
Item[String] |
ConfigurationSectionGroup Pobiera obiekt, którego nazwa jest określona z kolekcji. |
Keys |
Pobiera klucze do wszystkich ConfigurationSectionGroup obiektów zawartych w tym ConfigurationSectionGroupCollection obiekcie. |
Keys |
NameObjectCollectionBase.KeysCollection Pobiera wystąpienie zawierające wszystkie klucze w wystąpieniuNameObjectCollectionBase. (Odziedziczone po NameObjectCollectionBase) |
Metody
Add(String, ConfigurationSectionGroup) |
ConfigurationSectionGroup Dodaje obiekt do tego ConfigurationSectionGroupCollection obiektu. |
BaseAdd(String, Object) |
Dodaje wpis z określonym kluczem i wartością NameObjectCollectionBase do wystąpienia. (Odziedziczone po NameObjectCollectionBase) |
BaseClear() |
Usuwa wszystkie wpisy z NameObjectCollectionBase wystąpienia. (Odziedziczone po NameObjectCollectionBase) |
BaseGet(Int32) |
Pobiera wartość wpisu w określonym indeksie NameObjectCollectionBase wystąpienia. (Odziedziczone po NameObjectCollectionBase) |
BaseGet(String) |
Pobiera wartość pierwszego wpisu z określonym kluczem z NameObjectCollectionBase wystąpienia. (Odziedziczone po NameObjectCollectionBase) |
BaseGetAllKeys() |
Zwraca tablicę zawierającą String wszystkie klucze w wystąpieniu NameObjectCollectionBase . (Odziedziczone po NameObjectCollectionBase) |
BaseGetAllValues() |
Zwraca tablicę zawierającą Object wszystkie wartości w wystąpieniu NameObjectCollectionBase . (Odziedziczone po NameObjectCollectionBase) |
BaseGetAllValues(Type) |
Zwraca tablicę określonego typu, która zawiera wszystkie wartości w wystąpieniu NameObjectCollectionBase . (Odziedziczone po NameObjectCollectionBase) |
BaseGetKey(Int32) |
Pobiera klucz wpisu w określonym indeksie NameObjectCollectionBase wystąpienia. (Odziedziczone po NameObjectCollectionBase) |
BaseHasKeys() |
Pobiera wartość wskazującą, czy NameObjectCollectionBase wystąpienie zawiera wpisy, których klucze nie |
BaseRemove(String) |
Usuwa wpisy z określonym kluczem z NameObjectCollectionBase wystąpienia. (Odziedziczone po NameObjectCollectionBase) |
BaseRemoveAt(Int32) |
Usuwa wpis w określonym indeksie NameObjectCollectionBase wystąpienia. (Odziedziczone po NameObjectCollectionBase) |
BaseSet(Int32, Object) |
Ustawia wartość wpisu w określonym indeksie NameObjectCollectionBase wystąpienia. (Odziedziczone po NameObjectCollectionBase) |
BaseSet(String, Object) |
Ustawia wartość pierwszego wpisu z określonym kluczem w wystąpieniu NameObjectCollectionBase , jeśli zostanie znaleziony. W przeciwnym razie dodaje wpis z określonym kluczem i wartością NameObjectCollectionBase do wystąpienia. (Odziedziczone po NameObjectCollectionBase) |
Clear() |
Czyści kolekcję. |
CopyTo(ConfigurationSectionGroup[], Int32) |
Kopiuje ten ConfigurationSectionGroupCollection obiekt do tablicy. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
Get(Int32) |
Pobiera określony ConfigurationSectionGroup obiekt zawarty w kolekcji. |
Get(String) |
Pobiera określony ConfigurationSectionGroup obiekt z kolekcji. |
GetEnumerator() |
Pobiera moduł wyliczający, który może iterować przez ConfigurationSectionGroupCollection obiekt. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetKey(Int32) |
Pobiera klucz określonego ConfigurationSectionGroup obiektu zawartego w tym ConfigurationSectionGroupCollection obiekcie. |
GetObjectData(SerializationInfo, StreamingContext) |
Przestarzałe.
Używany przez system podczas serializacji. |
GetObjectData(SerializationInfo, StreamingContext) |
Przestarzałe.
Implementuje ISerializable interfejs i zwraca dane potrzebne do serializacji NameObjectCollectionBase wystąpienia. (Odziedziczone po NameObjectCollectionBase) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
OnDeserialization(Object) |
Implementuje ISerializable interfejs i zgłasza zdarzenie deserializacji po zakończeniu deserializacji. (Odziedziczone po NameObjectCollectionBase) |
Remove(String) |
ConfigurationSectionGroup Usuwa obiekt, którego nazwa jest określona z tego ConfigurationSectionGroupCollection obiektu. |
RemoveAt(Int32) |
ConfigurationSectionGroup Usuwa obiekt, którego indeks jest określony z tego ConfigurationSectionGroupCollection obiektu. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
ICollection.CopyTo(Array, Int32) |
Kopiuje całą NameObjectCollectionBase do zgodnej jednowymiarowej Arraytablicy, zaczynając od określonego indeksu tablicy docelowej. (Odziedziczone po NameObjectCollectionBase) |
ICollection.IsSynchronized |
Pobiera wartość wskazującą, czy dostęp do NameObjectCollectionBase obiektu jest synchronizowany (bezpieczny wątek). (Odziedziczone po NameObjectCollectionBase) |
ICollection.SyncRoot |
Pobiera obiekt, który może służyć do synchronizowania dostępu do NameObjectCollectionBase obiektu. (Odziedziczone po NameObjectCollectionBase) |
Metody rozszerzania
Cast<TResult>(IEnumerable) |
Rzutuje elementy elementu IEnumerable do określonego typu. |
OfType<TResult>(IEnumerable) |
Filtruje elementy elementu IEnumerable na podstawie określonego typu. |
AsParallel(IEnumerable) |
Umożliwia równoległość zapytania. |
AsQueryable(IEnumerable) |
Konwertuje element IEnumerable na .IQueryable |