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.

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>

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")

2

Użyj tego

System.Configuration.ConfigurationSettings.AppSettings.Get("Keyname")

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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.