ConfigurationSectionGroupCollection Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt een verzameling ConfigurationSectionGroup objecten.
public ref class ConfigurationSectionGroupCollection sealed : System::Collections::Specialized::NameObjectCollectionBase
[System.Serializable]
public sealed class ConfigurationSectionGroupCollection : System.Collections.Specialized.NameObjectCollectionBase
[<System.Serializable>]
type ConfigurationSectionGroupCollection = class
inherit NameObjectCollectionBase
Public NotInheritable Class ConfigurationSectionGroupCollection
Inherits NameObjectCollectionBase
- Overname
- Kenmerken
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u de ConfigurationSectionGroupCollection klasse gebruikt.
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
Het volgende voorbeeld is een fragment van het configuratiebestand dat in het vorige voorbeeld wordt gebruikt.
<?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>
Opmerkingen
Gebruik de ConfigurationSectionGroupCollection klasse om een verzameling ConfigurationSectionGroup objecten te herhalen. U kunt deze verzameling objecten openen met behulp van de SectionGroups eigenschap of de SectionGroups eigenschap.
De ConfigurationSectionGroupCollection klasse wordt ook gebruikt bij het maken van aangepaste typen waarmee de ConfigurationSectionGroup klasse wordt uitgebreid.
Eigenschappen
| Name | Description |
|---|---|
| Count |
Hiermee haalt u het aantal sectiegroepen in de verzameling op. |
| IsReadOnly |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het NameObjectCollectionBase exemplaar het kenmerk Alleen-lezen heeft. (Overgenomen van NameObjectCollectionBase) |
| Item[Int32] |
Hiermee haalt u het ConfigurationSectionGroup object op waarvan de index is opgegeven uit de verzameling. |
| Item[String] |
Hiermee haalt u het object op waarvan de ConfigurationSectionGroup naam is opgegeven uit de verzameling. |
| Keys |
Hiermee haalt u de sleutels op voor alle ConfigurationSectionGroup objecten in dit ConfigurationSectionGroupCollection object. |
Methoden
| Name | Description |
|---|---|
| Add(String, ConfigurationSectionGroup) |
Hiermee voegt u een ConfigurationSectionGroup object toe aan dit ConfigurationSectionGroupCollection object. |
| BaseAdd(String, Object) |
Voegt een vermelding met de opgegeven sleutel en waarde toe aan het NameObjectCollectionBase exemplaar. (Overgenomen van NameObjectCollectionBase) |
| BaseClear() |
Hiermee verwijdert u alle vermeldingen uit het NameObjectCollectionBase exemplaar. (Overgenomen van NameObjectCollectionBase) |
| BaseGet(Int32) |
Hiermee haalt u de waarde op van de vermelding in de opgegeven index van het NameObjectCollectionBase exemplaar. (Overgenomen van NameObjectCollectionBase) |
| BaseGet(String) |
Hiermee haalt u de waarde op van de eerste vermelding met de opgegeven sleutel van het NameObjectCollectionBase exemplaar. (Overgenomen van NameObjectCollectionBase) |
| BaseGetAllKeys() |
Retourneert een String matrix die alle sleutels in het NameObjectCollectionBase exemplaar bevat. (Overgenomen van NameObjectCollectionBase) |
| BaseGetAllValues() |
Retourneert een Object matrix die alle waarden in het NameObjectCollectionBase exemplaar bevat. (Overgenomen van NameObjectCollectionBase) |
| BaseGetAllValues(Type) |
Retourneert een matrix van het opgegeven type dat alle waarden in het NameObjectCollectionBase exemplaar bevat. (Overgenomen van NameObjectCollectionBase) |
| BaseGetKey(Int32) |
Hiermee haalt u de sleutel van de vermelding op in de opgegeven index van het NameObjectCollectionBase exemplaar. (Overgenomen van NameObjectCollectionBase) |
| BaseHasKeys() |
Hiermee wordt een waarde opgehaald die aangeeft of het NameObjectCollectionBase exemplaar vermeldingen bevat waarvan de sleutels niet |
| BaseRemove(String) |
Hiermee verwijdert u de vermeldingen met de opgegeven sleutel uit het NameObjectCollectionBase exemplaar. (Overgenomen van NameObjectCollectionBase) |
| BaseRemoveAt(Int32) |
Hiermee verwijdert u de vermelding in de opgegeven index van het NameObjectCollectionBase exemplaar. (Overgenomen van NameObjectCollectionBase) |
| BaseSet(Int32, Object) |
Hiermee stelt u de waarde van de vermelding in op de opgegeven index van het NameObjectCollectionBase exemplaar. (Overgenomen van NameObjectCollectionBase) |
| BaseSet(String, Object) |
Hiermee stelt u de waarde van de eerste vermelding in met de opgegeven sleutel in het NameObjectCollectionBase exemplaar, indien gevonden; anders voegt u een vermelding toe met de opgegeven sleutel en waarde in het NameObjectCollectionBase exemplaar. (Overgenomen van NameObjectCollectionBase) |
| Clear() |
Hiermee wist u de verzameling. |
| CopyTo(ConfigurationSectionGroup[], Int32) |
Kopieert dit ConfigurationSectionGroupCollection object naar een matrix. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| Get(Int32) |
Hiermee haalt u het opgegeven ConfigurationSectionGroup object op dat is opgenomen in de verzameling. |
| Get(String) |
Hiermee haalt u het opgegeven ConfigurationSectionGroup object op uit de verzameling. |
| GetEnumerator() |
Hiermee haalt u een enumerator op die door het ConfigurationSectionGroupCollection object kan worden herhaald. |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetKey(Int32) |
Hiermee haalt u de sleutel op van het opgegeven ConfigurationSectionGroup object dat in dit ConfigurationSectionGroupCollection object is opgenomen. |
| GetObjectData(SerializationInfo, StreamingContext) |
Gebruikt door het systeem tijdens serialisatie. |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| OnDeserialization(Object) |
Implementeert de ISerializable interface en verhoogt de deserialisatie-gebeurtenis wanneer de deserialisatie is voltooid. (Overgenomen van NameObjectCollectionBase) |
| Remove(String) |
Hiermee verwijdert u het object waarvan de ConfigurationSectionGroup naam van dit ConfigurationSectionGroupCollection object is opgegeven. |
| RemoveAt(Int32) |
Hiermee verwijdert u het object waarvan de ConfigurationSectionGroup index van dit ConfigurationSectionGroupCollection object is opgegeven. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Kopieert het hele NameObjectCollectionBase naar een compatibele eendimensionale Arraywaarde, beginnend bij de opgegeven index van de doelmatrix. (Overgenomen van NameObjectCollectionBase) |
| ICollection.IsSynchronized |
Hiermee wordt een waarde opgehaald die aangeeft of de toegang tot het NameObjectCollectionBase object wordt gesynchroniseerd (thread safe). (Overgenomen van NameObjectCollectionBase) |
| ICollection.SyncRoot |
Hiermee haalt u een object op dat kan worden gebruikt om de toegang tot het NameObjectCollectionBase object te synchroniseren. (Overgenomen van NameObjectCollectionBase) |
Extensiemethoden
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Hiermee schakelt u parallelle uitvoering van een query in. |
| AsQueryable(IEnumerable) |
Converteert een IEnumerable naar een IQueryable. |
| Cast<TResult>(IEnumerable) |
Cast de elementen van een IEnumerable naar het opgegeven type. |
| OfType<TResult>(IEnumerable) |
Hiermee filtert u de elementen van een IEnumerable op basis van een opgegeven type. |