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.

Versione originale del prodotto: Oggetto visivo C#
Numero KB originale: 815786

Requisiti

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

  • Microsoft Windows
  • Oggetto visivo C#

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

  • XML (Extensible Markup Language)
  • 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 System.Collections.Specialized nomi e 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. Nel menu File puntare su Nuovo, quindi scegliere 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.confige quindi selezionare Aggiungi.

  8. È possibile usare un file di configurazione dell'applicazione per raccogliere le impostazioni personalizzate dell'applicazione 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 ConfigurationManager classe . La ConfigurationManager classe si trova nello spazio dei System.Configuration nomi . Quando il AppSettings.Get metodo riceve un parametro di input stringa che contiene 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 alcun elemento in sAttr.

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

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

    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 Console. La chiave corrente elaborata dall'applicazione si trova 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 di 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();
        }
    }
}

Nota

Questo codice è destinato a .NET Framework 2.0. Se si usa .NET Framework 1.0 o .NET Framework 1.1, modificare tutte le istanze della ConfigurationManager classe in ConfigurationSettings.

Elenco di file di configurazione completo (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 della <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 è scritto 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 anziché una k minuscola o se la <appSettings> sezione viene visualizzata come <AppSettings> (con una A maiuscola anziché una a minuscola), viene visualizzato un messaggio di errore.

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

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

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

Riferimenti