Plik App.Config w aplikacji konsoli C #

92


Mam aplikację konsolową, w której chcę wpisać nazwę pliku.

Process.Start("blah.bat");

Zwykle miałbym coś takiego w aplikacji Windows, wpisując nazwę pliku 'blah.bat'do pliku ustawień we właściwościach .
Jednak tutaj nie znalazłem żadnego pliku ustawień i dodałem plik app.config w tym samym celu.

Nie jestem pewien, co tu napisać w app.config , to doprowadziłoby mnie do czegoś podobnego jak w Windows Forms .

Na przykład: w formularzach okien. Process.Start(Properties.Settings.Default.BatchFile);
gdzie BatchFilejest ciągiem w pliku ustawień we właściwościach.

user1240679
źródło

Odpowiedzi:

215

Możesz dodać odwołanie do System.Configurationw swoim projekcie, a następnie:

using System.Configuration;

następnie

string sValue = ConfigurationManager.AppSettings["BatchFile"];

z app.configplikiem takim jak ten:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <appSettings>
       <add key="BatchFile" value="blah.bat" />
   </appSettings>
</configuration>
xxbbcc
źródło
11
ConfigurationSettings.AppSettings["blah.bat"]jest dostępny, ale ostrzega, że ​​jest przestarzały. Kiedy próbuję użyć ConfigurationManagerjak powyżej, pojawia się błąd informujący, że ConfigurationManager nie istnieje w bieżącym kontekście. : - /
user1240679
69
Upewnij się, że dodajesz również odwołanie do System.Configuration - usingdurective działa tylko wtedy, gdy masz odwołanie do zestawu, którego próbujesz użyć.
xxbbcc
1
późny komentarz, ale moim błędem było to, że zapomniałem górnej
jak uzyskać int lub bool, czyli nie string?
Zapnologica
1
@Zapnologica Wszystko jest ciągiem, o ile AppSettingsjest brane pod uwagę. Jeśli masz ciągi ustawień zawierające liczby, musisz je przeanalizować, dzwoniąc int.TryParse()lub w podobny sposób. To samo dotyczy każdej innej wartości, którą chcesz traktować jako coś innego niż ciąg.
xxbbcc
21

W przypadku platformy .NET Core Dodaj System.Configuration.ConfigurationManager z menedżera NuGet.
I przeczytaj appSetting z App.config

<appSettings>
  <add key="appSetting1" value="1000" />
</appSettings>

Dodaj System.Configuration.ConfigurationManager z NuGet Manager

wprowadź opis obrazu tutaj

ConfigurationManager.AppSettings.Get("appSetting1")
Zin min
źródło
2

Użyj tego

System.Configuration.ConfigurationSettings.AppSettings.Get("Keyname")
user5705992
źródło
możesz zapisać swoją konfigurację na appSettion i dla Fetch the value use example.
user5705992
1
Zapewnia obsługę środowiska wykonawczego w wersji 1.x. To jest teraz przestarzałe . Proszę używaćSystem.Configuration.ConfigurationManager.AppSettings
wp78de
1
W referencjach wymagany jest montaż System.Configuration.
Muflix,