файл конфигурации приложения c #: AppSettings считывается пустым?

#c# #configuration

#c# #конфигурация

Вопрос:

Я впервые использую файл конфигурации XML. В обозревателе решений я щелкаю правой кнопкой мыши «Добавить», «новый элемент», «конфигурация приложения». файл.

Затем я отредактировал файл для чтения…

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>    
    <add key="Key1" value="1000" />    
  </appSettings>
</configuration>
  

… и попытался получить к нему доступ с помощью…

 Int32.Parse(ConfigurationManager.AppSettings.Get("Key1"));
  

…но в нем говорится, что параметр равен null. Я посмотрел только на то, что ConfigurationManager.AppSettings и это AllKeys свойство имеет размерность 0.

Что я делаю не так?

Спасибо!

Ответ №1:

  1. Щелкните правой кнопкой мыши на вашем проекте, выберите Свойства> Вкладка Настройки и отредактируйте свои настройки там, потому что файл конфигурации — не единственное место, где хранятся эти значения.

  2. В вашем коде используйте Settings.Default.MySetting для доступа к настройкам.

Вам нужно будет добавить using MyProjectName.Properties; в свои инструкции using, чтобы получить доступ к настройкам таким образом, или вам придется полностью квалифицировать это как MyProjectName.Properties.Settings.Default.MySetting

Комментарии:

1. Есть какая-либо причина, почему ConfigurationManager. AppSettings нельзя использовать?

Ответ №2:

Я знаю, что это очень старое, но я только что столкнулся с этим при открытии старого проекта. Ссылка на System.Configuration отсутствовала.

Ответ №3:

Чтобы гарантировать получение информации от App.config использования ConfigurationManager.AppSettings["<Key name>"]; , обязательно установите свои значения внутри <appSettings> раздела.

Пример:

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />      
    </startup>
  
   <appSettings>
    <add key ="IntervalSeconds" value ="60000"/>
    <add key ="OutputPathLog" value ="\myserverhackingtrackProjectsLog"/>
    <!--Jorgesys si Elenasys sunt puisori-->
    <add key="InputFeeds1" value="https://cld.blahbla.com//portadaKick.json" />
    <add key="InputFeeds2" value="https://cld.blahbla.com//portadaKick.json" />
    <add key="InputFeeds3" value="https://cld.blahbla.com//portadaKick.json" />

    </appSettings>
</configuration>
  

Извлечение значений:

    string intervalSeconds = ConfigurationManager.AppSettings["IntervalSeconds"];
   string inputFeeds1 = ConfigurationManager.AppSettings["InputFeeds1"]; ; 
   string inputFeeds2 = ConfigurationManager.AppSettings["InputFeeds2"]; 
   string inputFeeds3 = ConfigurationManager.AppSettings["InputFeeds3"];