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.

user1240679
quelle

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>
xxbbcc
quelle
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")
Zin Min
quelle
2

benutze das

System.Configuration.ConfigurationSettings.AppSettings.Get("Keyname")
user5705992
quelle
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