App.Config-Datei in der Konsolenanwendung C #


92


Ich habe eine Konsolenanwendung, in die ich den Namen einer Datei schreiben möchte.

Process.Start("blah.bat");

Normalerweise würde ich so etwas in einer Windows-Anwendung haben, indem ich den Namen der Datei 'blah.bat'in die Einstellungsdatei in den Eigenschaften schreibe .
Hier habe ich jedoch keine Einstellungsdatei gefunden und zum gleichen Zweck eine app.config hinzugefügt .

Ich bin nicht sicher, was ich hier in app.config schreiben soll , was dazu führen würde, dass ich etwas Ähnliches wie in Windows Forms erreiche .

Zum Beispiel: In Windows-Formularen. Process.Start(Properties.Settings.Default.BatchFile);
Wo BatchFileist eine Zeichenfolge in der Einstellungsdatei in den Eigenschaften.

Antworten:


211

Sie können System.Configurationin Ihrem Projekt einen Verweis auf hinzufügen und dann:

using System.Configuration;

dann

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

mit einer app.configDatei wie dieser:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <appSettings>
       <add key="BatchFile" value="blah.bat" />
   </appSettings>
</configuration>

10
ConfigurationSettings.AppSettings["blah.bat"]ist verfügbar, gibt jedoch eine Warnung aus, dass dies veraltet ist. Wenn ich versuche, ConfigurationManagerwie oben zu verwenden, wird eine Fehlermeldung angezeigt , dass ConfigurationManager im aktuellen Kontext nicht vorhanden ist. : - /
user1240679

69
usingStellen Sie sicher, dass Sie auch einen Verweis auf System.Configuration hinzufügen. Die Funktion funktioniert nur, wenn Sie einen Verweis auf die Assembly haben, die Sie verwenden möchten.
xxbbcc

1
Später Kommentar, aber für mich war mein Fehler, dass ich das obere Gehäuse 'S' von appSettings vergessen habe

Wie bekomme ich ein Int oder Bool, dh keine Zeichenfolge?
Zapnologica

1
@Zapnologica Soweit betrachtet, ist alles eine Zeichenfolge AppSettings. Wenn Sie Einstellungszeichenfolgen haben, die Zahlen enthalten, müssen Sie diese durch Aufrufen int.TryParse()oder ähnliches analysieren . Das Gleiche gilt für jeden anderen Wert, den Sie anders als eine Zeichenfolge behandeln möchten.
xxbbcc

18

Fügen Sie für .NET Core System.Configuration.ConfigurationManager aus dem NuGet-Manager hinzu.
Und lesen Sie appSetting aus App.config

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

Fügen Sie System.Configuration.ConfigurationManager aus NuGet Manager hinzu

Geben Sie hier die Bildbeschreibung ein

ConfigurationManager.AppSettings.Get("appSetting1")

2

benutze das

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

Sie können Ihre Konfiguration in appsettion speichern und zum Abrufen des Werts ein Beispiel verwenden.
user5705992

1
Bietet Unterstützung für die Laufzeitversion 1.x. Dies ist jetzt veraltet . Bitte benutzen SieSystem.Configuration.ConfigurationManager.AppSettings
wp78de

1
Die System.Configuration-Assembly wird in Referenzen benötigt.
Muflix
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.