Я пытаюсь получить доступ connectionStrings
из файла конфигурации. Код является ASP.NET + C #. Я добавил System.Configuration
в ссылку, а также упомянул с использованием. Но все равно он не примет сборку.
Я использую VSTS 2008. Любая идея, что может быть причиной?
Еще одна странная вещь - это имя сборки, отображаемое как «System.configuration», строчная буква c, которая не отображает имена для других сборок системы.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
namespace Utility
{
public class CommonVariables
{
public static String ConnectionString
{
get { return ConfigurationManager.ConnectionStrings["EmployeeEntities"].ConnectionString; }
}
}
}
Config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="qbankEntities" connectionString="metadata=res://*/qbankModel.csdl|res://*/qbankModel.ssdl|res://*/qbankModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=localhost;Initial Catalog=qbank;Persist Security Info=True;User ID=**;Password=****;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
c#
.net
visual-studio
visual-studio-2008
pencilslate
источник
источник
Ответы:
Не только необходимо использовать пространство имен
System.Configuration
. Вы также должны добавить ссылку на сборкуSystem.Configuration.dll
,System.Configuration
.Это будет работать наверняка. Также для
NameValueCollection
вы должны написать:источник
В вашем проекте щелкните правой кнопкой мыши, Добавить ссылку ... , на вкладке .NET найдите
System.Configuration
имя компонента и нажмите ОК.using System.Configuration
говорит компилятору / IntelliSense искать в этом пространстве имен любые используемые вами классы. В противном случае вам придетсяSystem.Configuration.ConfigurationManager
каждый раз использовать полное имя ( ). Но если вы не добавите ссылку, это пространство имен / класс нигде не будет найдено.Обратите внимание, что DLL может иметь любое пространство имен, поэтому
System.Configuration.dll
теоретически файл может иметь пространство именSome.Random.Name
. Для ясности / последовательности они обычно одинаковы, но есть исключения.источник
Хорошо .. это работало после перезапуска VSTS. Ссылка предложил решение одной и той же задачи. Хотел бы я видеть это раньше. :)
источник
Добавление
System.Configuration
ссылки на все проекты решит эту проблему.Перейти к
Project
->Add Reference
В появившемся окне нажмите
All assemblies
вкладку списка в списке слева.В центральном списке выделите
System.Configuration
и убедитесь, что флажок установлен.Нажмите кнопку ОК, чтобы подать заявку, и теперь вы сможете получить доступ к
ConfigurationManager
классу.источник
Добавление этого ответа, так как ни одно из предложенных решений не работает для меня.
источник
Если вы получаете много предупреждений (в моем случае 64 в решении!), Как
потому что вы обновляете старый проект, вы можете сэкономить много времени следующим образом:
System.Configuration
в качестве ссылки на ваш раздел ссылок .Добавьте следующие два
using
оператора в начало каждого.cs
файла class ( ):using System.Configuration; using ConfigurationSettings = System.Configuration.ConfigurationManager;
Этим изменяются все вхождения
теперь будет ссылаться на правильного менеджера конфигурации, а не на устаревший, и все предупреждения CS0618 немедленно исчезнут.
Конечно, имейте в виду, что это быстрый взлом. В долгосрочной перспективе вы должны рассмотреть возможность рефакторинга кода.
источник
Я получил лучшее решение для этой проблемы
configurationmanager does not exist in the current context
.Для чтения строки соединения
web.config
нам нужно использоватьConfigurationManager
класс и его метод. Если вы хотите использовать, вам нужно добавить пространство имен с помощьюSystem.Configuration
;Хотя вы использовали это пространство имен, при попытке использовать
ConfigurationManager
класс система выдает ошибку «менеджер конфигурации не существует в текущем контексте». Для решения этой проблемы:источник
Вы уверены, что добавили ссылку на сборку .NET, а не что-то еще? Я бы удалил вашу ссылку, а затем попытался бы добавить ее снова, убедившись, что вы выбираете на вкладке .NET в справочном диалоге Visual Studio - последняя версия должна быть 2.0.0.0 в GAC.
источник
Теперь вы можете:
источник
Для проверки работоспособности попробуйте создать новый проект веб-приложения, откройте код для страницы Default.aspx. Добавьте строку в Page_Load для доступа к строке подключения.
Он должен иметь System.Configuration, добавленную в качестве ссылки по умолчанию. Вы также должны увидеть оператор using в верхней части вашего файла кода.
Мой код позади файла теперь выглядит так и компилируется без проблем.
Предполагается, что в моем файле web.config есть строка подключения с именем, равным «MyConnectionStringName», например так ...
Да, это элементарно, я знаю. Но если у вас нет идей получше, иногда это помогает проверить что-то действительно простое, что, как вы знаете, должно работать.
источник
Просто установите
затем используйте
источник
Если этот код находится в отдельном проекте, как проект библиотеки. Не забывайте добавлять ссылку на system.configuration.
источник
Вы также можете получить эту ошибку, если по ошибке добавите ссылку на другой, не связанный проект. Проверьте, относится ли это к вам.
источник
Чтобы решить эту проблему, перейдите в Solution Explorer, щелкните правой кнопкой мыши ссылку, щелкните Добавить ссылку, выберите .net и найдите system.configuration, нажмите кнопку ОК.
источник
Добавьте файл менеджера конфигурации для подключения к базе данных web.config
источник