При работе с web.config класс конфигурации недоступен - PullRequest
2 голосов
/ 16 января 2010

Я хочу получить доступ к разделу «appSettings» файла web.config. Согласно MSDN и нескольким другим источникам, должно работать следующее:

System.Configuration.Configuration config = 
    WebConfigurationManager.OpenWebConfiguration("/rootPath");

Я получил эту ошибку во второй конфигурации (System.Configuration. Configuration ):

Тип или имя пространства имен «Конфигурация» не существует в Пространство имен 'System.Configuration' (есть Вы пропустили ссылку на сборку?)

Я получил дополнительную ошибку в системе ( Система .Configuration.Configuration):

тип 'System.Configuration.Configuration' определяется в сборке, которая не ссылки. Вы должны добавить ссылку сборке 'System.Configuration, Версия = 2.0.0.0, Культура = Нейтральная, PublicKeyToken = b03f5f7f11d50a3a».

В связи с первой ошибкой у меня есть ссылка на System.Configuration. Когда я смотрю в обозревателе объектов, он содержит определение класса для конфигурации.

В отношении второй ошибки ссылка указана для версии 2.0.50727. Есть ли версия 2.0.0.0?

Вторая ошибка появилась после того, как я удалил и снова добавил ссылку на System.Configuration. Кроме того, после повторного добавления ссылки теперь она отображается как «System. c onfiguration» в моих ссылках. Обратите внимание на строчную букву c.

Дополнительные примечания
Вещи, которые я попробовал и потерпел неудачу:

  • удалил и добавил ссылку на System.Configuration
  • Удалил все ссылки на проект и добавил их обратно
  • Проверил чистый раствор из SVN

Я создал тестовое решение, и у меня не было проблем с доступом к классу в пространстве имен System.Configuration.

Есть идеи о том, что происходит (как я это выяснил)? Какими способами я могу попытаться это исправить?

Ответы [ 2 ]

2 голосов
/ 18 января 2010

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

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

1 голос
/ 16 января 2010

Попробуйте удалить эти ссылки на System.Configuration и сделать это с нуля: вам нужно добавить version=2.0.0.0 (для времени выполнения версия v2.0.50727). Затем, чтобы прочитать ваш appSetting, вы можете просто написать это:

string value = System.Configuration.ConfigurationManager.AppSettings["yourKey"];
...