Usare Visual C# per archiviare e recuperare informazioni personalizzate da un file di configurazione dell'applicazione

Questo articolo illustra come archiviare informazioni personalizzate da un file di configurazione che è possibile recuperare in un secondo momento durante l'esecuzione dall'applicazione associata. È utile quando è necessario definire i dati associati a un'applicazione.

Nota

Il codice in questo articolo è destinato a .NET Framework 2.0 e versioni successive. Per conoscere le versioni specifiche a cui si applica la ConfigurationManager classe, vedere la sezione Si applica a .

Versione originale del prodotto: Visual C#
Numero KB originale: 815786

Requisiti

L'elenco seguente illustra l'hardware e il software consigliati necessari:

  • Microsoft Windows
  • Visual C#

Questo articolo presuppone che si abbia familiarità con gli argomenti seguenti:

  • Extensible Markup Language (XML)
  • File di configurazione .NET

Creare un'applicazione console che legge un file di configurazione

È possibile archiviare le impostazioni dell'applicazione nel file di configurazione associato all'applicazione. I file di configurazione vengono salvati in formato XML.

Gli System.Configuration spazi dei nomi e System.Collections.Specialized in .NET Framework includono le classi necessarie per recuperare informazioni da un file di configurazione dell'applicazione .NET durante l'esecuzione.

Per creare un'applicazione console che legge il contenuto di un file di configurazione associato durante l'esecuzione, seguire questa procedura:

  1. Avviare Visual Studio .NET o Visual Studio.

  2. Scegliere Nuovo dal menu Filee quindi selezionare Progetto.

  3. selezionare Visual C# in Tipi di progetto e quindi selezionare Applicazione console in Modelli. Assegnare al progetto il nome ConConfig. Per impostazione predefinita, Visual C# crea una classe denominata Program.

    Nota

    In Visual Studio .NET selezionare Progetti Visual C# in Tipi di progetto e quindi selezionare Applicazione console in Modelli. Assegnare al progetto il nome ConConfig. Per impostazione predefinita, Visual C# crea una classe denominata Class1.

  4. Assicurarsi che la finestra Esplora soluzioni sia visibile. Se non è visibile, premere la combinazione di tasti CTRL+ALT+L.

  5. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del progetto, scegliere Aggiungi e quindi selezionare Nuovo elemento.

  6. Nell'elenco Aggiungi nuovo elemento selezionare File XML.

  7. Nella casella di testo Nome digitare App.config e quindi selezionare Aggiungi.

  8. È possibile usare un file di configurazione dell'applicazione per raccogliere le impostazioni dell'applicazione personalizzate salvate in formato chiave/valore. È possibile includere <add> elementi nella <appSettings> sezione di un file di configurazione associato. Ogni coppia chiave/valore ha un <add> elemento. Un <add> elemento ha il formato seguente:

    <add key="Key0" value="0" />
    

    Aggiungere una <appSettings> sezione con <add> elementi al file di configurazione tra i <configuration> tag e </configuration> .

    Ad esempio, il file di configurazione seguente include una <appSettings> sezione che specifica tre coppie chiave/valore:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <appSettings>
            <add key="Key0" value="0" />
            <add key="Key1" value="1" />
            <add key="Key2" value="2" />
        </appSettings>
    </configuration>
    
  9. In Esplora soluzioni fare doppio clic su Program.cs per visualizzare la finestra del codice. Aggiungere le istruzioni seguenti al modulo di codice.

    Nota

    Queste istruzioni devono essere visualizzate prima di qualsiasi altra istruzione nel file.

    using System.Configuration;
    using System.Collections.Specialized;
    
  10. Aggiungere un riferimento a System.Configuration.dll seguendo questa procedura:

    1. Scegliere Aggiungi riferimento dal menu Progetto.
    2. Nella finestra di dialogo Aggiungi riferimento selezionare la scheda .NET.
    3. Trovare e selezionare il nome del componente di System.Configuration.
    4. selezionare OK.
  11. Per contenere il valore da una chiave del file di configurazione nella <appSettings> sezione del file di configurazione, dichiarare una variabile stringa nella Main sezione come indicato di seguito:

    string sAttr;
    
  12. Per recuperare un valore per una chiave specificata dalla <appSettings> sezione del file di configurazione, utilizzare il Get metodo della AppSettings proprietà della classe ConfigurationManager . La classe ConfigurationManager si trova nello spazio dei nomi System.Configuration. Quando il AppSettings.Get metodo riceve un parametro di input stringa contenente una chiave, l'applicazione recupera il valore associato alla chiave.

    Il codice seguente recupera il valore per l'attributo Key0 dal file di configurazione associato. Il codice inserisce quindi questo valore nella sAttr variabile stringa. Se non esiste una chiave per questo valore, non viene archiviato nulla in sAttr.

    sAttr = ConfigurationManager.AppSettings.Get("Key0");
    
  13. Per visualizzare il valore recuperato dall'applicazione nella finestra Console, usare Console.WriteLine come segue:

    Console.WriteLine("The value of Key0 is "+sAttr);
    
  14. È possibile usare un riferimento alla AppSettings proprietà per recuperare tutte le coppie chiave/valore nella <appSettings> sezione . Quando si usa la AppSettings proprietà , l'applicazione restituisce tutte le coppie chiave/valore associate. Queste coppie vengono archiviate in un NameValueCollection tipo. NameValueCollection Contiene voci chiave/valore per ogni chiave recuperata dall'applicazione. La classe NameValueCollection si trova nello spazio dei nomi System.Collections.Specialized.

    NameValueCollection sAll ;
    sAll = ConfigurationManager.AppSettings;
    
  15. La AllKeys proprietà di NameValueCollection fa riferimento a una matrice di stringhe con una voce per ogni chiave recuperata dall'applicazione. Usare una costruzione foreach per scorrere la AllKeys matrice per accedere a ogni chiave recuperata dall'applicazione. Ogni voce di chiave in AllKeys è un tipo di dati stringa.

    All'interno della foreach costruzione, usare Console.WriteLine per visualizzare la chiave e il relativo valore associato nella finestra della console. La chiave corrente elaborata dall'applicazione è in s. Usarlo come indice in sAllNameValueCollection per ottenere il valore associato.

     foreach (string s in sAll.AllKeys)
         Console.WriteLine("Key: "+ s + " Value: " + sAll.Get(s));
    
     Console.ReadLine();
    

Elenco codice completo

using System;
using System.Configuration;
using System.Collections.Specialized;

namespace ConConfig
{
    class Program
    {
        static void Main(string[] args)
        {
            string sAttr;

            // Read a particular key from the config file 
            sAttr = ConfigurationManager.AppSettings.Get("Key0");
            Console.WriteLine("The value of Key0: " + sAttr);

            // Read all the keys from the config file
            NameValueCollection sAll;
            sAll = ConfigurationManager.AppSettings;

            foreach (string s in sAll.AllKeys)
                Console.WriteLine("Key: " + s + " Value: " + sAll.Get(s));

            Console.ReadLine();
        }
    }
}

Elenco completo dei file di configurazione (ConConfig.exe.config)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="Key0" value="0" />
        <add key="Key1" value="1" />
        <add key="Key2" value="2" />
    </appSettings>
</configuration>

Verificare che funzioni

Premere F5 per eseguire il codice. Nella finestra Console devono essere visualizzate le coppie chiave/valore dalla <appSettings> sezione del file di configurazione associato come indicato di seguito:

The value of Key0: 0
Key: Key0 Value:0
Key: Key1 Value:1
Key: Key2 Value:2

Risoluzione dei problemi

  • Il file di configurazione viene salvato in formato XML. Assicurarsi di seguire tutte le regole di sintassi XML. Tenere presente che xml fa distinzione tra maiuscole e minuscole. Se il formato XML non è corretto o se un elemento è digitato in modo errato, si riceve un'eccezione System.Configuration.Configuration .

    Ad esempio, se si aggiunge l'attributo chiave di un <add> elemento con una K maiuscola invece di una k minuscola o se la <appSettings> sezione viene visualizzata come <AppSettings> (con una A maiuscola anziché una minuscola a), viene visualizzato un messaggio di errore.

  • Il file di configurazione deve essere salvato nella stessa cartella dell'applicazione associata.

  • Per il nome del file di configurazione è necessario usare la sintassi seguente:
    <ApplicationName>.<ApplicationType.config>

    Dove <ApplicationName> è il nome dell'applicazione. <ApplicationType> è il tipo di applicazione, ad esempio .exe. Ed .config è il suffisso obbligatorio.

Riferimenti