JAK: Przechowywanie informacji niestandardowych w pliku konfiguracji aplikacji i pobieranie ich z niego za pomocą programu Visual Basic .NET

Streszczenie

W tym artykule pokazano, jak przechowywać w pliku konfiguracji (.config) informacje niestandardowe, które później można pobrać w czasie wykonania za pomocą skojarzonej z tym plikiem aplikacji. Jest to przydatne, kiedy trzeba określić dane, które są skojarzone z aplikacją.


powrót do początku

Wymagania

Oto lista wymaganych elementów, takich jak sprzęt, oprogramowanie, infrastruktura sieci i dodatki Service Pack:
  • System Microsoft Windows 2000 lub Microsoft Windows XP:
  • Program Microsoft Visual Studio .NET
W artykule założono, że czytelnik zna następujące tematy:
  • Język Extensible Markup Language (XML)
  • Pliki konfiguracji .NET
powrót do początku

Tworzenie aplikacji konsoli, która odczytuje zawartość pliku konfiguracji

Ustawienia aplikacji można przechowywać w pliku konfiguracji, który jest skojarzony z aplikacją. Pliki konfiguracji są zapisywane w formacie XML. Obszary nazw
System.Configuration
i
System.Collections.Specialized
w architekturze Microsoft .NET Framework obejmują niezbędne klasy umożliwiające pobieranie informacji z pliku konfiguracji aplikacji .NET w czasie wykonania.


Aby utworzyć aplikację konsoli, która odczytuje zawartość skojarzonego z nią pliku konfiguracji w czasie wykonania, wykonaj następujące kroki:
  1. Otwórz program Visual Studio .NET.
  2. W programie Visual Basic .NET utwórz nowy projekt aplikacji konsoli o nazwie ConConfig. Program Visual Basic .NET domyślnie tworzy moduł o nazwie Module1.
  3. Upewnij się, że okno Solution Explorer jest widoczne. Jeśli nie jest, naciśnij klawisze CTRL+ALT+L.
  4. W oknie Solution Explorer kliknij przycisk
    Show All Files.
  5. Kliknij prawym przyciskiem myszy folder Bin, a następnie kliknij polecenie
    Include in Project.
  6. Kliknij prawym przyciskiem myszy folder
    Bin, wskaż polecenie
    Add, a następnie kliknij polecenie
    Add New Item.
  7. W oknie dialogowym
    Add New Item
    zaznacz szablon
    Application Configuration File, kliknij przycisk
    Open, a następnie dodaj do projektu plik App.config.


    UWAGA: Pliki konfiguracji aplikacji muszą znajdować się w tym samym folderze, co plik wykonywalny, z którym są skojarzone. Ponieważ program Visual Studio .NET umieszcza pliki wykonywalne w folderze Bin, plik konfiguracji również trzeba umieścić w folderze Bin.
  8. Plikowi konfiguracji aplikacji trzeba nadać nazwę w następującym formacie:
    NazwaAplikacji.TypAplikacji.config
    W oknie Solution Explorer kliknij prawym przyciskiem myszy plik
    App.config, a następnie kliknij polecenie
    Rename. Zmień nazwę pliku App.config na
    ConConfig.exe.config. Skojarzona z tym plikiem .config aplikacja będzie go mogła teraz odnaleźć.
  9. Pliku konfiguracji aplikacji można użyć do zebrania niestandardowych ustawień aplikacji, które zapisano w formacie klucz/wartość. W sekcji
    <appSettings>
    skojarzonego pliku konfiguracji można dodawać elementy
    <add>. Każda para klucz/wartość ma jeden element
    <add>. Element
    <add>
    ma następujący format:
    <add key="Klucz" value="Wartość" />
    Dodaj sekcję
    <appSettings>
    z elementami
    <add>
    do pliku konfiguracji między tagami <configuration> i </configuration>. Na przykład następujący plik konfiguracji obejmuje sekcję
    <appSettings>, która określa trzy pary klucz/wartość:
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <appSettings>
    <add key="Klucz0" value="0" />
    <add key="Klucz1" value="1" />
    <add key="Klucz2" value="2" />
    </appSettings>
    </configuration>
  10. W oknie Solution Explorer kliknij dwukrotnie plik
    Module1.vb, aby wyświetlić moduł Module1 w oknie kodu. Dodaj do modułu następujące instrukcje:


    UWAGA: Te instrukcje muszą pojawiać się przed wszelkimi innymi instrukcjami w pliku.
    Imports System.Configuration
    Imports System.Collections.Specialized
  11. W procedurze
    Sub Main
    zadeklaruj zmienną typu ciąg znaków do przechowywania wartości klucza pliku konfiguracji z sekcji
    <appSettings>
    pliku konfiguracji:
    Dim sAttr As String
  12. Aby pobrać wartość określonego klucza z sekcji
    <appSettings>
    pliku konfiguracji, użyj metody
    AppSettings
    klasy
    ConfigurationSettings. Klasa
    ConfigurationSettings
    należy do obszaru nazw
    System.Configuration. Gdy metoda
    AppSettings
    pobierze wejściowy parametr typu ciąg znaków, który zawiera klucz, aplikacja pobiera wartość skojarzoną z tym kluczem.


    Następujący kod pobiera wartość atrybutu
    Klucz0
    ze skojarzonego pliku konfiguracji. Następnie wartość ta zostaje umieszczona w zmiennej typu ciąg znaków,
    sAttr. Jeśli nie istnieje klucz dla danej wartości, w zmiennej
    sAttr
    jest przechowywana wartość
    Nothing.
    sAttr = ConfigurationSettings. AppSettings("Klucz0")
  13. Aby wartość pobraną przez aplikację wyświetlić w oknie Console, użyj metody
    Console.WriteLine:
    Console.WriteLine("Wartość klucza Klucz0: " & sAttr)
  14. Wystarczy użyć jednego odwołania do właściwości
    AppSettings, aby pobrać wszystkie pary klucz/wartość z sekcji
    <appSettings>. Jeśli używając właściwości
    AppSettings, nie określisz żadnych parametrów, aplikacja zwraca wszystkie skojarzone pary klucz/wartość. Te pary są przechowywane w zmiennej typu
    NameValueCollection, która zawiera wpisy klucz/wartość dla każdego klucza pobranego przez aplikację. Klasa
    NameValueCollection
    należy do obszaru nazw
    System.Collections.Specialized.
    Dim sAll As NameValueCollection
    sAll = ConfigurationSettings.AppSettings()
  15. Właściwość
    AllKeys
    klasy
    NameValueCollection
    odwołuje się do tablicy typu ciąg znaków, która zawiera wpis dla każdego klucza pobranego przez aplikację. Aby uzyskać dostęp do każdego z tych kluczy, użyj konstrukcji
    For Next
    do iterowania przez tablicę
    AllKeys. Typem danych każdego wpisu klucza w tablicy
    AllKeys
    jest ciąg znaków.
    Dim s As String
    For Each s In sAll.AllKeys
  16. Wewnątrz konstrukcji
    For Each
    użyj metody
    Console.WriteLine, aby wyświetlić klucz i skojarzoną z nim wartość w oknie Console. Bieżący klucz, który przetwarza aplikacja, znajduje się w zmiennej „s”. Użyj jej jako indeksu w zmiennej
    NameValueCollection
    sAll, aby uzyskać skojarzoną wartość.


    Jeśli na przykład aplikacja przetwarza klucz
    Klucz0, instrukcja sAll("Klucz0") pobiera skojarzoną wartość. Instrukcja
    Console.Readline
    wstrzymuje konsolę. Aby zakończyć aplikację, można nacisnąć klawisz ENTER.
        Console.WriteLine("Klucz: " & s & " Wartość: " & sAll(s))
    Next
    Console.Readline
powrót do początku

Testowanie kodu

Naciśnij klawisz F5, aby uruchomić kod. W oknie Console powinny zostać wyświetlone pary klucz/wartość z sekcji
<appSettings>
skojarzonego pliku konfiguracji, jak następuje:

Wartość klucza Klucz0: 0
Klucz: Klucz0 Wartość:0
Klucz: Klucz1 Wartość:1
Klucz: Klucz2 Wartość:2
powrót do początku

Pełny kod

Imports System.Configuration
Imports System.Collections.Specialized

Module Module1

Sub Main()
Dim sAttr As String

sAttr = ConfigurationSettings.AppSettings("Klucz0")
Console.WriteLine("Wartość klucza Klucz0: " & sAttr)

Dim sAll As NameValueCollection
sAll = ConfigurationSettings.AppSettings()

Dim s As String
For Each s In sAll.AllKeys
Console.WriteLine("Klucz: " & s & " Wartość: " & sAll(s))
Next
Console.ReadLine()
End Sub

End Module
powrót do początku

Pełny plik konfiguracji (ConConfig.exe.config)

<configuration>
<appSettings>
<add key="Klucz0" value="0"/>
<add key="Klucz1" value="1"/>
<add key="Klucz2" value="2"/>
</appSettings>
</configuration>
powrót do początku

Rozwiązywanie problemów

  • Plik konfiguracji jest zapisywany w formacie XML. Upewnij się, czy przestrzegasz wszystkich reguł składni języka XML. Pamiętaj, że w języku XML jest rozróżniana wielkość liter. Jeśli forma kodu XML będzie nieodpowiednia lub jeśli jakikolwiek element będzie błędnie napisany, pojawi się wyjątek System.Configuration.Configuration.


    Jeśli na przykład doda się atrybut key elementu
    <add>
    napisany wielką literą „K” zamiast małą „k” lub nazwę sekcji
    <appSettings>
    zapisze się jako
    <AppSettings>
    (z wielką literą „A” zamiast z małą „a”), pojawi się komunikat o błędzie.
  • Plik konfiguracji musi znajdować się w tym samym folderze, co skojarzona z nim aplikacja.
  • Należy użyć następującej składni nazwy pliku konfiguracji:
    NazwaAplikacji.TypAplikacji.config
    gdzie
    NazwaAplikacji
    jest nazwą aplikacji,
    TypAplikacji
    jest typem aplikacji (na przykład .exe), a .config jest wymaganym sufiksem.
powrót do początku
Właściwości

Identyfikator artykułu: 313405 — ostatni przegląd: 24.02.2002 — zmiana: 1

Opinia