Mówiąc najprościej, app.config jest plikiem XML z wieloma predefiniowanymi sekcjami konfiguracyjnymi i obsługą niestandardowych sekcji konfiguracyjnych. „Sekcja konfiguracji” to fragment kodu XML ze schematem przeznaczonym do przechowywania pewnego rodzaju informacji.
Ustawienia można skonfigurować za pomocą wbudowanych sekcji konfiguracyjnych, takich jak connectionStrings
lub appSettings
. Możesz dodać własne sekcje konfiguracji niestandardowej; jest to temat zaawansowany, ale bardzo przydatny do tworzenia plików konfiguracyjnych o jednoznacznie określonym typie.
Aplikacje internetowe zwykle mają plik web.config, podczas gdy aplikacje GUI / usługi systemu Windows mają plik app.config.
Pliki konfiguracyjne na poziomie aplikacji dziedziczą ustawienia z globalnych plików konfiguracyjnych, np. Machine.config.
Czytanie z App.Config
Parametry połączenia mają wstępnie zdefiniowany schemat, którego można użyć. Zauważ, że ten mały fragment jest w rzeczywistości prawidłowym plikiem app.config (lub web.config):
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="MyKey"
connectionString="Data Source=localhost;Initial Catalog=ABC;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
Po zdefiniowaniu pliku app.config można go odczytać w kodzie za pomocą klasy ConfigurationManager . Nie daj się zastraszyć szczegółowymi przykładami MSDN; to właściwie całkiem proste.
string connectionString = ConfigurationManager.ConnectionStrings["MyKey"].ConnectionString;
Pisanie do App.Config
Częsta zmiana plików * .config zwykle nie jest dobrym pomysłem, ale wygląda na to, że chcesz przeprowadzić tylko jednorazową konfigurację.
Zobacz: Zmiana parametrów połączenia i ponowne załadowanieconnectionStrings
pliku app.config w czasie wykonywania, który opisuje, jak zaktualizować sekcję pliku * .config w czasie wykonywania.
Zwróć uwagę, że idealnie byłoby wykonać takie zmiany konfiguracji za pomocą prostego instalatora.
Lokalizacja App.Config w czasie wykonywania
P : Załóżmy, że ręcznie zmienię część <value>
pliku app.config, zapiszę go, a następnie zamknę. Kiedy teraz przechodzę do folderu bin i uruchamiam stąd plik .exe, dlaczego nie odzwierciedla on zastosowanych zmian?
Odp . : Kiedy kompilujesz aplikację, jej plik app.config jest kopiowany do katalogu bin 1 z nazwą pasującą do twojego exe. Na przykład, jeśli plik exe został nazwany „test.exe”, w katalogu bin powinien znajdować się plik „text.exe.config”. Możesz zmienić konfigurację bez ponownej kompilacji, ale będziesz musiał edytować plik konfiguracyjny, który został utworzony w czasie kompilacji, a nie oryginalny plik app.config.
1: Zwróć uwagę, że pliki web.config nie są przenoszone, ale zamiast tego pozostają w tej samej lokalizacji podczas kompilacji i wdrażania. Jedynym wyjątkiem jest sytuacja, gdy plik web.config jest przekształcany .
.NET Core
Nowe opcje konfiguracji zostały wprowadzone w .NET Core. Wygląda na to, że sposób działania plików * .config nie zmienił się, ale programiści mają swobodę wyboru nowych, bardziej elastycznych paradygmatów konfiguracji.