Fichier App.Config dans l'application console C #

92


J'ai une application console dans laquelle je souhaite écrire le nom d'un fichier.

Process.Start("blah.bat");

Normalement, j'aurais quelque chose comme ça dans l'application Windows en écrivant le nom du fichier 'blah.bat'dans le fichier de paramètres dans Propriétés .
Cependant, ici, je n'ai trouvé aucun fichier de paramètres et j'ai ajouté un app.config dans le même but.

Je ne sais pas quoi écrire ici dans app.config , cela me conduirait à réaliser une chose similaire à celle de Windows Forms .

Par exemple: dans les formulaires Windows. Process.Start(Properties.Settings.Default.BatchFile);
BatchFileest une chaîne dans le fichier de paramètres dans Propriétés.

user1240679
la source

Réponses:

213

Vous pouvez ajouter une référence à System.Configurationdans votre projet puis:

using System.Configuration;

puis

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

avec un app.configfichier comme celui-ci:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <appSettings>
       <add key="BatchFile" value="blah.bat" />
   </appSettings>
</configuration>
xxbbcc
la source
11
ConfigurationSettings.AppSettings["blah.bat"]est disponible mais avertit qu'il est obsolète. Lorsque j'essaye d'utiliser ConfigurationManagercomme ci-dessus, j'obtiens une erreur indiquant que ConfigurationManager n'existe pas dans le contexte actuel. : - /
user1240679
69
Assurez-vous que vous ajoutez également une référence à System.Configuration - le usingdurective ne fonctionne que lorsque vous avez une référence à l'assembly que vous essayez d'utiliser.
xxbbcc
1
commentaire tardif, mais pour moi, mon erreur a été que j'ai oublié le `` S '' du boîtier supérieur de appSettings
comment obtenir un int ou un bool, c'est-à-dire pas une chaîne?
Zapnologica
1
@Zapnologica Tout est une chaîne, pour autant que l' AppSettingson considère. Si vous avez des chaînes de paramètres contenant des nombres, vous devrez les analyser en appelant int.TryParse()ou autre. Il en va de même pour toute autre valeur que vous souhaitez traiter autre qu'une chaîne.
xxbbcc
19

Pour .NET Core, ajoutez System.Configuration.ConfigurationManager à partir du gestionnaire NuGet.
Et lisez appSetting depuis App.config

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

Ajouter System.Configuration.ConfigurationManager à partir de NuGet Manager

entrez la description de l'image ici

ConfigurationManager.AppSettings.Get("appSetting1")
Zin Min
la source
2

utilisez ceci

System.Configuration.ConfigurationSettings.AppSettings.Get("Keyname")
user5705992
la source
vous pouvez enregistrer votre configuration sur appsettion et pour Fetch l'exemple d'utilisation de la valeur.
user5705992
1
Fournit la prise en charge de la version d'exécution 1.x. C'est désormais obsolète . Veuillez utiliserSystem.Configuration.ConfigurationManager.AppSettings
wp78de
1
L'assembly System.Configuration est nécessaire dans les références.
Muflix