System.Configuration.ConfigurationManager не доступен? - PullRequest
52 голосов
/ 12 мая 2009

В проекте VS2005 C # я добавил ссылку на System.configuration. В обозревателе объектов я вижу System.Configuration.ConfigurationManager. В Intellisense System.Configuration имеет только старые ConfigurationSettings, но не ConfigurationManager.

мой код System.Configuration.ConfigurationManager.AppSettings [ "MySetting"]

выделяется как синтаксическая ошибка и не компилируется.

В другом проекте точно такая же настройка работает просто отлично ... какие-нибудь подсказки относительно того, что происходит?

Ответы [ 7 ]

118 голосов
/ 14 мая 2009

Хотя с использованием System.Configuration ; Команда автоматически генерируется в разделе использования, по какой-то причине фактическая ссылка не установлена.

Перейдите в , добавьте ссылку , вкладку .Net и выберите System.Configuration .

.

ConfigurationManager теперь будет разрешен.

Если вы зайдете в проект, где точно такая же настройка работает просто отлично, и посмотрите на ссылки, вы увидите ссылку на System.Configuration.

16 голосов
/ 17 августа 2012

Чтобы ответить на вопрос (не то, что на него уже не отвечали 5+ раз), нужно добавить System.Configuration в качестве ссылки на ваш проект.

Однако, что я действительно хотел бы выделить, это , что во многих случаях я добавлял System.Configuration.dll в ссылки на мой проект, но по какой-то особой причине иногда ConfigurationManager по-прежнему не отображается в intellisense даже после добавления ссылки на System.Configuration. Даже если я удалю ссылку и добавлю ее снова.

Очень простое решение этой проблемы:

  1. Добавьте ссылку на System.Configuration.dll в ваш проект
  2. Сохраните ваши файлы
  3. Сохраните ваше решение
  4. Закройте экземпляр Visual Studio, который доставляет вам затруднения
  5. Повторно откройте ваше решение

Это простое упражнение заставит Visual Studio снова работать и перестанет говорить, что вы не добавили ссылку на System.Configuration. Это упражнение обычно помогает мне во всех необъяснимых действиях Visual Studio.

Это случалось со мной как в VS2008, так и в VS2010 несколько раз, и это работает каждый раз.

10 голосов
/ 12 мая 2009

urgh - ошибка PICNIC. Добавлена ​​ссылка на неправильный проект в решении ...

9 голосов
/ 02 июля 2009

Для тех, кто переключается между разработкой ASP.NET WebForms и WinForms, этот совет может пригодиться.

Если вы разрабатываете в проекте C # WinForms, вы обнаружите, что попытка использовать ConfigurationManager для получения настроек app.config приведет к следующей ошибке:

Имя 'ConfigurationManager' не существует в текущем контексте

Поскольку это включено по умолчанию в проекты ASP.NET, это может стать неожиданностью. Просто щелкните правой кнопкой мыши узел «Ссылки» в вашем проекте и посмотрите вкладку «.NET». Прокрутите вниз, и вы должны найти System.Configuration. Добавьте это в свой проект, и вы должны начать работу.

Добавление ссылки на System.Configuration

Если вы уже добавили System.Configuration в раздел использования в верхней части кода, теперь вы сможете использовать параметры конфигурации (например, строки подключения) с кодом, например следующим:

con.ConnectionString = ConfigurationManager.ConnectionStrings[sConnection].ConnectionString;
3 голосов
/ 17 июня 2016

Из документации MSDN -

Чтобы использовать класс ConfigurationManager, ваш проект должен ссылаться на System.Configuration сборка. По умолчанию некоторые шаблоны проектов, как консольное приложение, не ссылайтесь на эту сборку, поэтому вы должны вручную ссылаться на него.

https://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx

3 голосов
/ 12 мая 2009

Я думаю, что вам нужно неявно обратиться к System.Configuration сборка.

0 голосов
/ 12 мая 2009

Это всего лишь предположение, но, возможно, вам следует проверить, использует ли ваш проект хотя бы .NET Framework 2.0. Класс ConfigurationManager доступен начиная с версии .NET 2.0, как описано здесь: ссылка на MSDN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...