Przechowywanie i pobieranie informacji niestandardowych z pliku konfiguracji aplikacji przy użyciu 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 skojarzoną aplikację. Jest to przydatne, gdy musisz zdefiniować dane skojarzone z aplikacją.

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

Wymagania

Na poniższej liście przedstawiono zalecany sprzęt i oprogramowanie, których potrzebujesz:

  • Microsoft Windows
  • Visual C#

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

  • Rozszerzalny język znaczników (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 .NET Framework zawierają klasy niezbędne do pobrania informacji z pliku konfiguracji aplikacji platformy .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 konsola w obszarze Szablony. Nadaj projektowi nazwę ConConfig. Domyślnie program Visual C# tworzy klasę o nazwie Program.

    Uwaga

    W programie Visual Studio .NET wybierz pozycję Projekty Visual C# w obszarze Typy projektów, a następnie wybierz pozycję Aplikacja konsola w obszarze Szablony. Nadaj projektowi nazwę ConConfig. Domyślnie język 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ę klawiszy 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 umożliwia zbieranie niestandardowych ustawień aplikacji, które są zapisywane 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 <configuration> tagami 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

    Te instrukcje muszą być wyświetlane przed 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ę Dodaj odwołanie.
    2. W oknie dialogowym Dodawanie odwołania wybierz kartę .NET .
    3. Znajdź i wybierz nazwę składnika System.Configuration.
    4. wybierz przycisk 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 AppSettings właściwości ConfigurationManager klasy. Klasa ConfigurationManager znajduje się System.Configuration w przestrzeni nazw. AppSettings.Get Gdy metoda odbiera parametr wejściowy ciągu zawierający klucz, aplikacja pobiera wartość skojarzoną 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 sAttrpliku .

    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. W przypadku korzystania z AppSettings właściwości aplikacja zwraca wszystkie skojarzone pary klucz/wartość. Te pary są przechowywane w typie NameValueCollection . Element NameValueCollection zawiera wpisy klucz/wartość dla każdego klucza pobieranego przez aplikację. Klasa NameValueCollection znajduje się System.Collections.Specialized w przestrzeni nazw.

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

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

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

Ukończ listę 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();
        }
    }
}

Uwaga

Ten kod jest przeznaczony dla .NET Framework 2.0. Jeśli używasz .NET Framework 1.0 lub .NET Framework 1.1, zmień wszystkie wystąpienia klasy na ConfigurationManagerConfigurationSettings.

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 klawisz 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 przestrzegasz wszystkich reguł składni XML. Pamiętaj, że kod XML uwzględnia wielkość liter. Jeśli kod XML nie jest dobrze sformułowany lub jeśli element jest błędnie napisany, otrzymasz wyjątek System.Configuration.Configuration .

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

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

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

    Where <ApplicationName> to nazwa aplikacji. <ApplicationType> to typ aplikacji, taki jak .exe. I .config jest wymagany sufiks.

Informacje