Classe ConfigurationManager (System.Configuration)

Cambia visualizzazione:
ScriptFree
Riferimento a .NET Framework
Classe ConfigurationManager

Nota: questa classe è stata introdotta con .NET Framework versione 2.0.

Fornisce l'accesso ai file di configurazione per le applicazioni client. Questa classe non può essere ereditata.

Spazio dei nomi: System.Configuration
Assembly: System.Configuration (in system.configuration.dll)

Sintassi

Visual Basic - (Dichiarazione)
Public NotInheritable Class ConfigurationManager
Visual Basic (Utilizzo)
È possibile accedere direttamente ai membri di una classe Static senza un'istanza della classe.
C#
public static class ConfigurationManager
C++
public ref class ConfigurationManager abstract sealed
J#
public final class ConfigurationManager
JScript
public final class ConfigurationManager
Note

La classe ConfigurationManager consente di accedere alle informazioni sulla configurazione del computer, dell'applicazione e dell'utente. Questa classe sostituisce la classe ConfigurationSettings che è diventata obsoleta.

Le applicazioni client vengono eseguite sul computer client, mentre le applicazioni Web vengono eseguite sul computer computer a cui il client è connesso.

Per gestire le informazioni sulla configurazione, è possibile utilizzare i tipi System.Configuration incorporati o derivare da essi. Impiegando questi tipi, è possibile utilizzare direttamente le informazioni sulla configurazione ed estendere i file di configurazione in modo da includere informazioni personalizzate.

La classe ConfigurationManager include membri che consentono di eseguire le attività seguenti.

  • Leggere una sezione da un file di configurazione. Per accedere alle informazioni sulla configurazione, chiamare il metodo GetSection. Per alcune sezioni, ad esempio appSettings e connectionStrings, utilizzare le classi AppSettings e ConnectionStrings. Questi membri eseguono operazioni in sola lettura, utilizzano una singola istanza memorizzata nella cache e riconoscono il multithreading.

  • Leggere e scrivere interi file di configurazione. L'applicazione consente di leggere e scrivere le impostazioni di configurazione a qualsiasi livello, per se stessa o per altre applicazioni o computer, in modalità locale o remota. Per aprire un file di configurazione, ad esempio SampleApp.exe.config, è necessario utilizzare uno dei metodi forniti dalla classe ConfigurationManager. Questi metodi restituiscono un oggetto Configuration che a sua volta espone i metodi e le proprietà che è possibile utilizzare con i file di configurazione associati. I metodi eseguono operazioni in lettura o in scrittura e ricreano i dati di configurazione ogni volta che viene scritto un file.

  • Supportare le attività di configurazione. I tipi seguenti vengono utilizzati per supportare svariate attività di configurazione:

    Oltre a utilizzare le informazioni sulla configurazione esistenti, è possibile creare e utilizzare elementi di configurazione personalizzati estendendo i tipi di configurazione incorporati, quali le classi ConfigurationElement, ConfigurationElementCollection, ConfigurationProperty e ConfigurationSection. Per un esempio di come estendere un tipo di configurazione incorporato a livello di codice, vedere ConfigurationSection. Per un esempio di come estendere un tipo di configurazione incorporato mediante il modello basato su attributi, vedere ConfigurationElement.

Note per gli implementatori: La classe Configuration consente l'accesso a livello di codice per la modifica dei file di configurazione. Utilizzare uno dei metodi di apertura forniti da ConfigurationManager. Questi metodi restituiscono un oggetto Configuration, che a sua volta fornisce i metodi e le proprietà necessari per gestire i file di configurazione sottostanti. È possibile accedere a questi file per la lettura o la scrittura. Per leggere i file di configurazione, utilizzare GetSection o GetSectionGroup per leggere le informazioni di configurazione. L'utente o il processo che consente di leggere deve disporre delle seguenti autorizzazioni:

  • Autorizzazione di lettura per il file di configurazione al livello di gerarchia corrente della configurazione.

  • Autorizzazioni di lettura per tutti i file di configurazione padre.

Se l'applicazione necessita di accedere in sola lettura alla configurazione, è consigliabile utilizzare il metodo GetSection. Questo metodo fornisce l'accesso ai valori di configurazione memorizzati nella cache per l'applicazione corrente, garantendo prestazioni migliori rispetto alla classe Configuration. Per scrivere nei file di configurazione, utilizzare uno dei metodi Save. L'utente o il processo che consente di scrivere deve disporre delle seguenti autorizzazioni:
  • Autorizzazione di scrittura per il file di configurazione e la directory al livello di gerarchia corrente della configurazione.

  • Autorizzazioni di lettura per tutti i file di configurazione.

Esempio

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare la classe ConfigurationManager per accedere a una sezione di configurazione personalizzata. Se la sezione non esiste, viene creata e aggiunta al file di configurazione. La classe della sezione personalizzata utilizzata in questo esempio viene implementata dall'esempio contenuto nella classe ConfigurationPropertyAttribute.

Visual Basic
 ' Create a custom section.
Shared Sub New()
   ' Get the application configuration file.
     Dim config As System.Configuration.Configuration = _
     ConfigurationManager.OpenExeConfiguration( _
     ConfigurationUserLevel.None)
   ' Console.WriteLine(config.FilePath);
   ' If the section does not exiat in the configuration
   ' file, create it and save it to the file.
   If config.Sections(customSectionName) Is Nothing Then
      custSection = New CustomSection()
      config.Sections.Add(customSectionName, custSection)
      custSection = config.GetSection(customSectionName)
      custSection.SectionInformation.ForceSave = True
      config.Save(ConfigurationSaveMode.Full)
   End If
End Sub 'New


C#
// Create a custom section.
static UsingConfigurationManager()
{
    // Get the application configuration file.
    System.Configuration.Configuration config =
            ConfigurationManager.OpenExeConfiguration(
            ConfigurationUserLevel.None);
 
    // If the section does not exist in the configuration
    // file, create it and save it to the file.
    if (config.Sections[customSectionName] == null)
    {
        custSection = new CustomSection();
        config.Sections.Add(customSectionName, custSection);
        custSection =
            config.GetSection(customSectionName) as CustomSection;
        custSection.SectionInformation.ForceSave = true;
        config.Save(ConfigurationSaveMode.Full);
    }
}

Nell'esempio vengono utilizzati gli elementi illustrati nel file di configurazione seguente, che viene generato alla prima esecuzione dell'esempio.

NotaNota

È necessario impostare l'attributo Version in modo da riflettere i requisiti di controllo della versione.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="CustomSection" 
       type="Samples.Config.CustomSection,
         ConfigurationManager, 
         Version=1.0.0.0, 
         Culture=neutralPublicKeyToken=null" 
         allowDefinition="Everywhere" 
         allowExeDefinition="MachineToApplication" 
         restartOnExternalChanges="true" />
  </configSections>
  <connectionStrings>
    <add name="ConnStr1" 
      connectionString="LocalSqlServer: data source=127.0.0.1;Integrated Security=SSPI;Initial Catalog=aspnetdb"
      providerName="System.Data.SqlClient" />
    <add name="ConnStr2" 
      connectionString="LocalSqlServer: data source=127.0.0.1;Integrated Security=SSPI;Initial Catalog=aspnetdb"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
  <appSettings>
    <add key="AppSetting0" 
      value="Monday, February 28, 2005 1:27:59 PM" />
    <add key="AppSetting1" 
      value="Monday, February 28, 2005 1:36:40 PM" />
  </appSettings>
  <CustomSection fileName="default.txt" maxUsers="1000" 
     maxIdleTime="00:10:00" />
</configuration>
Gerarchia di ereditarietà

System.Object
  System.Configuration.ConfigurationManager
Codice thread safe

I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.
Piattaforme

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

Informazioni sulla versione

.NET Framework

Supportato in: 2.0
Vedere anche