Подтвердить что ты не робот

ConfigurationManager возвращает значение null вместо строковых значений

Я пытаюсь получить значения из моего файла App.config, который хранится в моем рабочем каталоге, однако при запуске программы он возвращает null. Я очень смущен, почему это так, и много раз просматривал код, пытаясь обнаружить ошибку.

Вот мой код файла App.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="provider" value="System.Data.SqlClient" />
  </appSettings>
  <connectionStrings>
    <add name="connection" connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=Autos;Integrated Security=True;Pooling=False" />
  </connectionStrings>
</configuration>

Вот мой код С#:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.Common;

namespace DataProviderFun
{
  class Program
  {
    static void Main(string[] args)
    {
      string p = ConfigurationManager.AppSettings["provider"];
      string c = ConfigurationManager.ConnectionStrings["connection"].ConnectionString;

      ...

Когда я запускаю этот код, p = null и c = null.

Я ссылаюсь на System.Configuration.dll.

4b9b3361

Ответ 1

Вы гарантировали правильность размещения файла конфигурации в каталоге, из которого вы запускаете приложение? На самом деле есть файл с именем < app name > .exe.config в этом каталоге?

Я просто угадываю здесь - возможно, вы добавили файл App.Config в другой проект, тогда ваш проект сборки exe...?

Кстати, я скопировал ваш код и App.Config, как и в чистый проект, и этот код работал у меня. Поэтому я бы посмотрел в направлении самого файла конфигурации, а не в коде. Код в порядке...

Надеюсь, что это поможет,

Ран