File App.Config nell'applicazione console C #


92


Ho un'applicazione console in cui voglio scrivere il nome di un file.

Process.Start("blah.bat");

Normalmente, avrei qualcosa di simile in applicazione delle finestre scrivendo il nome del file 'blah.bat'di impostazioni di file in Proprietà .
Tuttavia, qui non ho trovato alcun file di impostazioni e ho aggiunto un app.config per lo stesso scopo.

Non sono sicuro di cosa scrivere qui in app.config , questo mi porterebbe a ottenere qualcosa di simile a Windows Forms .

Ad esempio: in Windows Form. Process.Start(Properties.Settings.Default.BatchFile);
dove BatchFileè una stringa nel file delle impostazioni in Proprietà.

Risposte:


212

Puoi aggiungere un riferimento al System.Configurationtuo progetto e poi:

using System.Configuration;

poi

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

con un app.configfile come questo:

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

11
ConfigurationSettings.AppSettings["blah.bat"]è disponibile ma avvisa che è obsoleto. Quando provo a usare ConfigurationManagercome sopra, ottengo un errore che dice che ConfigurationManager non esiste nel contesto corrente. : - /
user1240679

69
Assicurati di aggiungere anche un riferimento a System.Configuration: il usingdurective funziona solo quando hai un riferimento all'assembly che stai cercando di usare.
xxbbcc

1
commento in ritardo ma per me il mio errore è stato di aver dimenticato la 'S'

come ottengo un int o bool, cioè non una stringa?
Zapnologica

1
@Zapnologica Tutto è una stringa, per quanto AppSettingssi considera. Se hai stringhe di impostazioni che contengono numeri, dovrai analizzarle chiamando int.TryParse()o simili. Lo stesso vale per qualsiasi altro valore che desideri trattare con qualcosa di diverso da una stringa.
xxbbcc

18

Per .NET Core, aggiungi System.Configuration.ConfigurationManager da NuGet Manager.
E leggi appSetting da App.config

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

Aggiungi System.Configuration.ConfigurationManager da NuGet Manager

inserisci qui la descrizione dell'immagine

ConfigurationManager.AppSettings.Get("appSetting1")

2

Usa questo

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

puoi salvare la tua configurazione su appsettion e per Fetch the value use example.
user5705992

1
Fornisce supporto per la versione runtime 1.x. Questo è obsoleto ora. Si prega di utilizzareSystem.Configuration.ConfigurationManager.AppSettings
wp78de

1
L'assembly System.Configuration è necessario nei riferimenti.
Muflix
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.