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


92


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

Process.Start("blah.bat");

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

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

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

Ответы:


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>

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")

вы можете сохранить свою конфигурацию в appsettion и для Fetch the value use example.
user5705992

1
Обеспечивает поддержку среды выполнения версии 1.x. Сейчас это устарело . Пожалуйста, используйтеSystem.Configuration.ConfigurationManager.AppSettings
wp78de

1
Сборка System.Configuration необходима в ссылках.
Muflix
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.