Файл App.Config у консольному додатку C #


92


У мене є консольний додаток, в якому я хочу написати ім’я файлу.

Process.Start("blah.bat");

Зазвичай, я б що - щось подібне у вікні додатку, написавши ім'я файлу 'blah.bat'для налаштування файлу в властивості .
Однак тут я не знайшов жодного файлу налаштувань, і я додав app.config з тією ж метою.

Я не впевнений, що писати тут у app.config , що призвело б до того, що я досяг подібного, як у Windows Forms .

Наприклад, у віконних формах. Process.Start(Properties.Settings.Default.BatchFile);
де BatchFile- рядок у файлі налаштувань у Властивості.

Відповіді:


213

Ви можете додати посилання на 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

69
Переконайтеся, що ви також додали посилання на System.Configuration - usingдиректив працює лише тоді, коли у вас є посилання на збірку, яку ви намагаєтесь використовувати.
xxbbcc

1
пізній коментар, але для мене моєю помилкою було те, що я забув верхній регістр `` S '' з

як отримати int або bool, тобто не рядок?
Zapnologica

1
@Zapnologica Усе, що вважається, є рядком AppSettings. Якщо у вас є рядки налаштувань, які містять цифри, вам доведеться проаналізувати їх за допомогою виклику int.TryParse()тощо. Те саме стосується будь-якого іншого значення, яке потрібно обробити чимось, крім рядка.
xxbbcc

19

Для .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 та для прикладу використання значення.
user5705992

1
Забезпечує підтримку версії середовища виконання 1.x. Зараз це застаріло . Будь ласка, використовуйтеSystem.Configuration.ConfigurationManager.AppSettings
wp78de

1
У посиланнях потрібна збірка System.Configuration.
Muflix
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.