ConfigurationSectionGroupCollection Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta una raccolta di oggetti ConfigurationSectionGroup.
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
- Ereditarietà
- Attributi
Esempio
Nell'esempio di codice seguente viene illustrato l'utilizzo della classe ConfigurationSectionGroupCollection.
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
L'esempio seguente è un estratto del file di configurazione usato dall'esempio precedente.
<?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>
Commenti
Usare la ConfigurationSectionGroupCollection classe per scorrere una raccolta di ConfigurationSectionGroup oggetti. È possibile accedere a questa raccolta di oggetti usando la proprietà o la SectionGroupsSectionGroups proprietà .
La ConfigurationSectionGroupCollection classe viene usata anche nella creazione di tipi personalizzati che estendono la ConfigurationSectionGroup classe.
Proprietà
Count |
Ottiene il numero di gruppi di sezioni nell'insieme. |
Count |
Ottiene il numero di coppie chiave/valore contenute nell'istanza della classe NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
IsReadOnly |
Ottiene o imposta un valore che indica se l'istanza di NameObjectCollectionBase è di sola lettura. (Ereditato da NameObjectCollectionBase) |
Item[Int32] |
Ottiene l'oggetto ConfigurationSectionGroup il cui indice è specificato dall'insieme. |
Item[String] |
Ottiene l'oggetto ConfigurationSectionGroup il cui nome è specificato dall'insieme. |
Keys |
Ottiene le chiavi per tutti gli oggetti ConfigurationSectionGroup contenuti in questo oggetto ConfigurationSectionGroupCollection. |
Keys |
Ottiene un'istanza NameObjectCollectionBase.KeysCollection che contiene tutte le chiavi nell'istanza NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
Metodi
Add(String, ConfigurationSectionGroup) |
Aggiunge un oggetto ConfigurationSectionGroup a questo oggetto ConfigurationSectionGroupCollection. |
BaseAdd(String, Object) |
Aggiunge una voce con la chiave e il valore specificati nell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseClear() |
Rimuove tutte le voci dall'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseGet(Int32) |
Ottiene il valore della voce in corrispondenza dell'indice specificato dell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseGet(String) |
Ottiene il valore della prima voce con la chiave specificata dall'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseGetAllKeys() |
Restituisce una matrice String che contiene tutte le chiavi incluse nell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseGetAllValues() |
Restituisce una matrice Object che contiene tutti i valori inclusi nell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseGetAllValues(Type) |
Restituisce una matrice del tipo specificato che contiene tutti i valori inclusi nell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseGetKey(Int32) |
Ottiene la chiave della voce in corrispondenza dell'indice specificato dell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseHasKeys() |
Ottiene un valore che indica se l'istanza di NameObjectCollectionBase contiene voci le cui chiavi non sono |
BaseRemove(String) |
Rimuove le voci con la chiave specificata dall'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseRemoveAt(Int32) |
Rimuove la voce in corrispondenza dell'indice specificato dell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseSet(Int32, Object) |
Imposta il valore della voce in corrispondenza dell'indice specificato dell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseSet(String, Object) |
Imposta il valore della prima voce con la chiave specificata contenuta nell'istanza di NameObjectCollectionBase, se presente; in caso contrario aggiunge una voce con la chiave e il valore specificati nell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
Clear() |
Cancella la raccolta. |
CopyTo(ConfigurationSectionGroup[], Int32) |
Copia questo oggetto ConfigurationSectionGroupCollection in una matrice. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
Get(Int32) |
Ottiene l'oggetto ConfigurationSectionGroup specificato incluso nell'insieme. |
Get(String) |
Ottiene l'oggetto ConfigurationSectionGroup specificato dalla raccolta. |
GetEnumerator() |
Ottiene un enumeratore in grado di scorrere l'oggetto ConfigurationSectionGroupCollection. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetKey(Int32) |
Ottiene la chiave dell'oggetto ConfigurationSectionGroup specificato contenuto in questo oggetto ConfigurationSectionGroupCollection. |
GetObjectData(SerializationInfo, StreamingContext) |
Obsoleti.
Utilizzato dal sistema durante la serializzazione. |
GetObjectData(SerializationInfo, StreamingContext) |
Obsoleti.
Implementa l'interfaccia ISerializable e restituisce i dati necessari a serializzare l'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnDeserialization(Object) |
Implementa l'interfaccia ISerializable e genera l'evento di deserializzazione quando la deserializzazione è completa. (Ereditato da NameObjectCollectionBase) |
Remove(String) |
Rimuove l'oggetto ConfigurationSectionGroup il cui nome è specificato da questo oggetto ConfigurationSectionGroupCollection. |
RemoveAt(Int32) |
Rimuove l'oggetto ConfigurationSectionGroup il cui indice è specificato da questo oggetto ConfigurationSectionGroupCollection. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
ICollection.CopyTo(Array, Int32) |
Copia l'intero oggetto NameObjectCollectionBase in un oggetto Array compatibile unidimensionale, a partire dall'indice specificato della matrice di destinazione. (Ereditato da NameObjectCollectionBase) |
ICollection.IsSynchronized |
Ottiene un valore che indica se l'accesso all'oggetto NameObjectCollectionBase è sincronizzato (thread-safe). (Ereditato da NameObjectCollectionBase) |
ICollection.SyncRoot |
Ottiene un oggetto che può essere usato per sincronizzare l'accesso all'oggetto NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
Metodi di estensione
Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato. |
OfType<TResult>(IEnumerable) |
Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato. |
AsParallel(IEnumerable) |
Consente la parallelizzazione di una query. |
AsQueryable(IEnumerable) |
Converte un oggetto IEnumerable in un oggetto IQueryable. |