Jestem naprawdę nowy w .NET i nadal nie rozumiem, jak działają pliki konfiguracyjne.
Za każdym razem, gdy wyszukuję w Google na ten temat, otrzymuję wyniki dotyczące web.config, ale piszę aplikację Windows Forms.
Doszedłem do wniosku, że muszę użyć przestrzeni nazw System.Configuration, ale dokumentacja nie pomaga.
Jak zdefiniować, że mój plik konfiguracyjny to XYZ.xml? A może ma „domyślną” nazwę pliku konfiguracyjnego? Nadal tego nie rozumiem.
Jak również zdefiniować nową sekcję? Czy naprawdę muszę tworzyć klasę, która dziedziczy po ConfigurationSection?
Chciałbym mieć tylko plik konfiguracyjny z takimi wartościami:
<MyCustomValue>1</MyCustomValue>
<MyCustomPath>C:\Some\Path\Here</MyCustomPath>
Czy jest na to prosty sposób? Czy możesz w prosty sposób wyjaśnić, jak czytać i zapisywać z / do prostego pliku konfiguracyjnego?
.net
xml
winforms
configuration
Fabio Gomes
źródło
źródło
Odpowiedzi:
Chcesz użyć aplikacji App.Config.
Kiedy dodajesz nowy element do projektu, pojawia się coś, co nazywa się plikiem konfiguracji aplikacji. Dodaj to.
Następnie dodajesz klucze w sekcji configuration / appsettings
Lubić:
<configuration> <appSettings> <add key="MyKey" value="false"/>
Uzyskaj dostęp do członków, wykonując
Działa to w .NET 2 i nowszych.
źródło
ConfigurationSettings
jest przestarzały, użyjSystem.Configuration.ConfigurationManager.AppSettings["MyKey"];
.System.Configuration.ConfigurationManager
twojego projektu, potrzebujesz odniesienia doSystem.Configuration.dll
Wyjaśnienie poprzednich odpowiedzi ...
Dodaj nowy plik do projektu ( Dodaj → Nowy element → Plik konfiguracyjny aplikacji )
Nowy plik konfiguracji pojawi się w Eksploratorze rozwiązań jako App.Config .
Dodaj swoje ustawienia do tego pliku, używając poniższego szablonu jako szablonu
<configuration> <appSettings> <add key="setting1" value="key"/> </appSettings> <connectionStrings> <add name="prod" connectionString="YourConnectionString"/> </connectionStrings> </configuration>
Odzyskaj je w ten sposób:
Po utworzeniu folder wyjściowy będzie zawierał plik o nazwie <nazwa_zbioru> .exe.config. Będzie to kopia pliku App.Config . Deweloper nie powinien wykonywać żadnych dalszych prac, aby utworzyć ten plik.
źródło
Po szybkim przeczytaniu poprzednich odpowiedzi wyglądają na poprawne, ale nie wygląda na to, aby ktokolwiek wspomniał o nowych funkcjach konfiguracyjnych w Visual Studio 2008. Nadal używa app.config (skopiowanego w czasie kompilacji do YourAppName.exe.config), ale istnieje widżet interfejsu użytkownika do ustawiania właściwości i określania ich typów. Kliknij dwukrotnie Settings.settings w folderze „Properties” projektu.
Najlepsze jest to, że dostęp do tej właściwości z kodu jest bezpieczny dla typów - kompilator wychwyci oczywiste błędy, takie jak błędne wpisanie nazwy właściwości. Na przykład do właściwości o nazwie MyConnectionString w pliku app.config można uzyskać dostęp w następujący sposób:
źródło
Settings.Default.Test = "abc"; Settings.Default.Save();
Powinieneś utworzyć plik App.config (bardzo podobny do web.config ).
Należy kliknąć prawym przyciskiem myszy projekt, dodać nowy element i wybrać nowy „Plik konfiguracyjny aplikacji” .
Upewnij się, że dodajesz za pomocą System.Configuration w projekcie.
Następnie możesz dodać do niego wartości:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="setting1" value="key"/> </appSettings> <connectionStrings> <add name="prod" connectionString="YourConnectionString"/> </connectionStrings> </configuration>
Uwaga: według Microsoftu powinieneś używać ConfigurationManager zamiast ConfigurationSettings (zobacz sekcję uwagi):
źródło
Domyślna nazwa pliku konfiguracyjnego to [yourexe] .exe.config. Tak więc notepad.exe będzie miał plik konfiguracyjny o nazwie notepad.exe.config, w tym samym folderze co program. To jest ogólny plik konfiguracyjny dla wszystkich aspektów środowiska CLR i struktury, ale może zawierać własne ustawienia w
<appSettings>
węźle.<appSettings>
Elementem tworzy zbiór par nazwa-wartość, które mogą być dostępne jakoSystem.Configuration.ConfigurationSettings.AppSettings
. Nie ma jednak możliwości zapisania zmian z powrotem w pliku konfiguracyjnym.Możliwe jest również dodanie własnych elementów niestandardowych do pliku konfiguracyjnego - na przykład w celu zdefiniowania ustrukturyzowanego ustawienia - poprzez utworzenie klasy, która implementuje
IConfigurationSectionHandler
i dodanie jej do<configSections>
elementu pliku konfiguracyjnego. Możesz wtedy uzyskać do niego dostęp dzwoniącConfigurationSettings.GetConfig
..NET 2.0 dodaje nową klasę,
System.Configuration.ConfigurationManager
która obsługuje wiele plików, z nadpisywaniem danych dla każdego systemu przez użytkownika. Obsługuje również zapisywanie zmodyfikowanych konfiguracji z powrotem do plików ustawień.Visual Studio tworzy plik o nazwie
App.config
, który kopiuje do folderu EXE o poprawnej nazwie podczas budowania projektu.źródło
Najlepszy artykuł (IMHO) o konfiguracji aplikacji .NET jest w CodeProject, Unraveling the Mysteries of .NET 2.0 Configuration . Mój następny ulubiony (krótszy) artykuł o sekcjach w plikach konfiguracyjnych .NET to Zrozumienie obsługi sekcji - plik App.config .
źródło
W Windows Forms masz
app.config
plik, który jest bardzo podobny doweb.config
pliku. Ale ponieważ widzę, że potrzebujesz tego do niestandardowych wartości, sugeruję użycie Ustawień .Aby to zrobić, otwórz właściwości projektu, a następnie przejdź do ustawień. Jeśli plik ustawień nie istnieje, będziesz mieć łącze do jego utworzenia. Następnie możesz dodać ustawienia do tabeli, którą tam widzisz, co wygeneruje zarówno odpowiedni kod XML, jak i klasę ustawień, której można użyć do załadowania i zapisania ustawień.
Klasa ustawień otrzyma nazwę podobną do
DefaultNamespace.Properties.Settings
. Następnie możesz użyć kodu podobnego do:źródło
Zgadzam się z innymi odpowiedziami, które wskazują na app.config. Jednak zamiast czytać wartości bezpośrednio z pliku app.config, należy utworzyć klasę narzędziową (używam nazwy AppSettings), aby je odczytać i udostępnić jako właściwości. Klasa AppSettings może służyć do agregowania ustawień z kilku sklepów, takich jak wartości z pliku app.config i informacje o wersji aplikacji z zestawu (AssemblyVersion i AssemblyFileVersion).
źródło
Bardzo prostym sposobem na to jest użycie własnej
Settings
klasy niestandardowej .źródło
Posługiwać się:
AppSettings zostało wycofane i jest teraz uważane za przestarzałe ( link ).
Ponadto sekcja appSettings w pliku app.config została zastąpiona sekcją applicationSettings .
Jak ktoś inny wspomniał, powinieneś używać System.Configuration.ConfigurationManager ( link ), który jest nowością w .NET 2.0.
źródło
Jakiej wersji .NET i Visual Studio używasz?
Po utworzeniu nowego projektu w rozwiązaniu powinien znajdować się plik o nazwie app.config . To jest domyślny plik konfiguracyjny.
źródło