Файл App.Config в консольном приложении C #

92


У меня есть консольное приложение, в котором я хочу написать имя файла.

Process.Start("blah.bat");

Обычно, я бы что - то подобное в окне приложении, написав имя файла 'blah.bat'для настройки файла в свойствах .
Однако здесь я не нашел ни одного файла настроек и добавил app.config с той же целью.

Я не уверен, что писать здесь, в app.config , чтобы добиться того же, что и в Windows Forms .

Например: в формах Windows. Process.Start(Properties.Settings.Default.BatchFile);
где BatchFileстрока в файле настроек в Свойствах.

user1240679
источник

Ответы:

215

Вы можете добавить ссылку System.Configurationв свой проект, а затем:

using System.Configuration;

тогда

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

с таким app.configфайлом:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <appSettings>
       <add key="BatchFile" value="blah.bat" />
   </appSettings>
</configuration>
xxbbcc
источник
11
ConfigurationSettings.AppSettings["blah.bat"]доступен, но предупреждает, что он устарел. Когда я пытаюсь использовать, ConfigurationManagerкак указано выше, я получаю сообщение об ошибке, что ConfigurationManager не существует в текущем контексте. : - /
user1240679 09
69
Убедитесь, что вы также добавили ссылку на System.Configuration - usingdurective работает только тогда, когда у вас есть ссылка на сборку, которую вы пытаетесь использовать.
xxbbcc
1
поздний комментарий, но для меня моей ошибкой было то, что я забыл заглавную
как мне получить int или bool, т.е. не строку?
Zapnologica
1
@Zapnologica Все, насколько AppSettingsсчитается, является строкой . Если у вас есть строки настроек, содержащие числа, вам придется проанализировать их, позвонив int.TryParse()или что-то подобное. То же самое касается любого другого значения, которое вы хотите обработать чем-то отличным от строки.
xxbbcc
21

Для .NET Core добавьте System.Configuration.ConfigurationManager из диспетчера NuGet.
И прочтите appSetting из App.config

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

Добавить System.Configuration.ConfigurationManager из NuGet Manager

введите описание изображения здесь

ConfigurationManager.AppSettings.Get("appSetting1")
Зин Мин
источник
2

использовать это

System.Configuration.ConfigurationSettings.AppSettings.Get("Keyname")
user5705992
источник
вы можете сохранить свою конфигурацию в appsettion и для Fetch the value use example.
user5705992
1
Обеспечивает поддержку среды выполнения версии 1.x. Сейчас это устарело . Пожалуйста, используйтеSystem.Configuration.ConfigurationManager.AppSettings
wp78de
1
Сборка System.Configuration необходима в ссылках.
Muflix