Udostępnij za pośrednictwem


Przechowywanie i pobieranie informacji niestandardowych z pliku konfiguracji aplikacji za pomocą języka Visual C#

W tym artykule przedstawiono sposób przechowywania informacji niestandardowych z pliku konfiguracji, który można pobrać później w czasie wykonywania przez skojarzą aplikację. Warto zdefiniować dane skojarzone z aplikacją.

Uwaga 16.

Kod w tym artykule jest przeznaczony dla programu .NET Framework 2.0 i nowszych wersji. Aby dowiedzieć się, do których wersji ConfigurationManager odnosi się klasa, zobacz sekcję Dotyczy .

Oryginalna wersja produktu: Visual C#
Oryginalny numer KB: 815786

Wymagania

Poniższa lista zawiera opis zalecanego sprzętu i oprogramowania, które są potrzebne:

  • Microsoft Windows
  • Visual C#

W tym artykule założono, że znasz następujące tematy:

  • Extensible Markup Language (XML)
  • Pliki konfiguracji platformy .NET

Tworzenie aplikacji konsolowej, która odczytuje plik konfiguracji

Ustawienia aplikacji można przechowywać w pliku konfiguracji skojarzonym z aplikacją. Pliki konfiguracji są zapisywane w formacie XML.

Przestrzenie System.Configuration nazw i System.Collections.Specialized w programie .NET Framework obejmują klasy niezbędne do pobrania informacji z pliku konfiguracji aplikacji .NET w czasie wykonywania.

Aby utworzyć aplikację konsolową, która odczytuje zawartość skojarzonego pliku konfiguracji w czasie wykonywania, wykonaj następujące kroki:

  1. Uruchom program Visual Studio .NET lub Visual Studio.

  2. W menu Plik wskaż polecenie Nowy, a następnie kliknij opcję Projekt.

  3. wybierz pozycję Visual C# w obszarze Typy projektów, a następnie wybierz pozycję Aplikacja konsolowa w obszarze Szablony. Nadaj projektowi nazwę ConConfig. Domyślnie program Visual C# tworzy klasę o nazwie Program.

    Uwaga 16.

    W programie Visual Studio .NET wybierz pozycję Projekty Visual C# w obszarze Typy projektów, a następnie wybierz pozycję Aplikacja konsolowa w obszarze Szablony. Nadaj projektowi nazwę ConConfig. Domyślnie program Visual C# tworzy klasę o nazwie Class1.

  4. Upewnij się, że okno Eksplorator rozwiązań jest widoczne. Jeśli nie jest widoczny, naciśnij kombinację CTRL+ALT+L.

  5. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy nazwę projektu, wybierz pozycję Dodaj, a następnie wybierz pozycję Nowy element.

  6. Na liście Dodaj nowy element wybierz pozycję Plik XML.

  7. W polu tekstowym Nazwa wpisz App.config, a następnie wybierz pozycję Dodaj.

  8. Plik konfiguracji aplikacji służy do zbierania niestandardowych ustawień aplikacji zapisywanych w formacie klucz/wartość. Elementy można uwzględnić <add> w <appSettings> sekcji skojarzonego pliku konfiguracji. Każda para klucz/wartość ma jeden <add> element. Element <add> ma następujący format:

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

    Dodaj sekcję <appSettings> z elementami <add> do pliku konfiguracji między tagami <configuration> i </configuration> .

    Na przykład następujący plik konfiguracji zawiera sekcję <appSettings> , która określa trzy pary klucz/wartość:

    <?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. W Eksplorator rozwiązań kliknij dwukrotnie Program.cs, aby wyświetlić okno kodu. Dodaj następujące instrukcje do modułu kodu.

    Uwaga 16.

    Te instrukcje muszą pojawić się przed wszelkimi innymi instrukcjami w pliku.

    using System.Configuration;
    using System.Collections.Specialized;
    
  10. Dodaj odwołanie do System.Configuration.dll , wykonując następujące kroki:

    1. W menu Project (Projekt) wybierz pozycję Add Reference (Dodaj odwołanie).
    2. W oknie dialogowym Dodawanie odwołania wybierz kartę .NET.
    3. Znajdź i wybierz nazwę składnika .System.Configuration
    4. wybierz pozycję OK.
  11. Aby przechowywać wartość z klucza pliku konfiguracji w <appSettings> sekcji pliku konfiguracji, zadeklaruj zmienną ciągu w sekcji w Main następujący sposób:

    string sAttr;
    
  12. Aby pobrać wartość określonego klucza z <appSettings> sekcji pliku konfiguracji, użyj Get metody właściwości AppSettings klasy ConfigurationManager . Klasa ConfigurationManager znajduje się w System.Configuration przestrzeni nazw. AppSettings.Get Gdy metoda odbiera parametr wejściowy ciągu zawierający klucz, aplikacja pobiera wartość skojarzona z kluczem.

    Poniższy kod pobiera wartość atrybutu Key0 ze skojarzonego pliku konfiguracji. Następnie kod umieszcza tę wartość w zmiennej sAttr ciągu. Jeśli klucz nie istnieje dla tej wartości, nic nie jest przechowywane w pliku sAttr.

    sAttr = ConfigurationManager.AppSettings.Get("Key0");
    
  13. Aby wyświetlić wartość pobieraną przez aplikację w oknie Konsola, użyj następującego polecenia Console.WriteLine :

    Console.WriteLine("The value of Key0 is "+sAttr);
    
  14. Możesz użyć jednego odwołania do właściwości, AppSettings aby pobrać wszystkie pary klucz/wartość w <appSettings> sekcji. Gdy używasz AppSettings właściwości, aplikacja zwraca wszystkie skojarzone pary klucz/wartość. Te pary są przechowywane w typie NameValueCollection . Zawiera NameValueCollection wpisy klucza/wartości dla każdego klucza pobieranego przez aplikację. Klasa NameValueCollection znajduje się w System.Collections.Specialized przestrzeni nazw.

    NameValueCollection sAll ;
    sAll = ConfigurationManager.AppSettings;
    
  15. Właściwość AllKeys odwołuje się do tablicy ciągów NameValueCollection , która zawiera wpis dla każdego klucza pobieranego przez aplikację. Użyj konstrukcji foreach, aby iterować przez tablicę AllKeys , aby uzyskać dostęp do każdego klucza pobieranego przez aplikację. Każdy wpis klucza w pliku AllKeys jest typem danych ciągu.

    Wewnątrz konstrukcji foreach użyj Console.WriteLine polecenia , aby wyświetlić klucz i jego skojarzona wartość w oknie Konsola. Bieżący klucz, który przetwarza aplikacja, znajduje się w elemencie s. Użyj go jako indeksu w obiekcie sAllNameValueCollection , aby uzyskać skojarzona wartość.

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

Kompletna lista kodu

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();
        }
    }
}

Pełna lista plików konfiguracji (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>

Sprawdź, czy działa

Naciśnij F5, aby uruchomić kod. W oknie Konsola powinny być wyświetlane pary klucz/wartość z <appSettings> sekcji skojarzonego pliku konfiguracji w następujący sposób:

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

Rozwiązywanie problemów

  • Plik konfiguracji jest zapisywany w formacie XML. Upewnij się, że są zgodne ze wszystkimi regułami składni XML. Pamiętaj, że w pliku XML jest uwzględniana wielkość liter. Jeśli kod XML nie jest poprawnie sformułowany lub jeśli element jest błędnie napisany, otrzymasz System.Configuration.Configuration wyjątek.

    Jeśli na przykład dodasz atrybut <add> klucza elementu z wielką literą K zamiast małej litery k, lub jeśli <appSettings> sekcja jest wyświetlana jako <AppSettings> (z wielkimi literami A zamiast małymi literami), zostanie wyświetlony komunikat o błędzie.

  • Plik konfiguracji musi być zapisany w tym samym folderze co skojarzona aplikacja.

  • Należy użyć następującej składni dla nazwy pliku konfiguracji:
    <ApplicationName>.<ApplicationType.config>

    Gdzie <ApplicationName> to nazwa aplikacji. <ApplicationType> to typ aplikacji, taki jak .exe. I .config jest wymaganym sufiksem.

Informacje