Estou tentando acessar a connectionStrings
partir do arquivo de configuração. O código é ASP.NET + C #. Eu adicionei System.Configuration
a referência e também mencionei com o uso. Mas ainda assim não aceitaria a assembléia.
Estou usando o VSTS 2008. Alguma idéia do que poderia ser o motivo?
Outra coisa estranha é o nome do assembly mostrado como "System.configuration", um minúsculo c que não é como os nomes são exibidos para outros assemblies do sistema.
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>
Respostas:
Não é apenas necessário usar o espaço para nome
System.Configuration
. Você também deve adicionar a referência à montagemSystem.Configuration.dll
,System.Configuration
.Isso funcionará com certeza. Também para o que
NameValueCollection
você tem que escrever:fonte
No seu projeto, clique com o botão direito do mouse em Adicionar referência ... , na guia .NET, encontre o
System.Configuration
nome do componente e clique em OK.using System.Configuration
instrui o compilador / IntelliSense a procurar nesse namespace as classes que você usa. Caso contrário, você teria que usar o nome completo (System.Configuration.ConfigurationManager
) toda vez. Mas se você não adicionar a referência, esse namespace / classe não será encontrado em nenhum lugar.Observe que uma DLL pode ter qualquer espaço para nome; portanto, o arquivo
System.Configuration.dll
pode, em teoria, ter o espaço para nomeSome.Random.Name
. Para maior clareza / consistência, geralmente são iguais, mas há exceções.fonte
Ok .. funcionou depois de reiniciar o VSTS. O link sugeriu a solução para o mesmo problema. Gostaria de ter visto isso antes. :)
fonte
A adição de
System.Configuration
como referência a todos os projetos resolverá isso.Vá para
Project
->Add Reference
Na caixa exibida, clique na
All assemblies
guia lista na lista à esquerda.Na lista central, role até
System.Configuration
e verifique se a caixa está marcada.Clique em ok para se inscrever e agora você poderá acessar a
ConfigurationManager
turma.fonte
Adicionando esta resposta, como nenhuma das soluções sugeridas funciona para mim.
fonte
Se você receber muitos avisos (no meu caso 64 em uma solução!) Como
porque você está atualizando um projeto mais antigo, pode economizar muito tempo da seguinte maneira:
System.Configuration
como referência à sua seção Referências .Adicione as duas
using
instruções a seguir na parte superior de cada.cs
arquivo de classe ( ):using System.Configuration; using ConfigurationSettings = System.Configuration.ConfigurationManager;
Por essa mudança, todas as ocorrências de
agora fará referência ao gerenciador de configuração correto, não o obsoleto, e todos os avisos do CS0618 desaparecerão imediatamente.
Obviamente, lembre-se de que este é um hack rápido. A longo prazo, considere refatorar o código.
fonte
Eu obtive uma solução melhor para o problema
configurationmanager does not exist in the current context
.Para uma string de conexão de leitura
web.config
, precisamos usar aConfigurationManager
classe e seu método. Se você deseja usar, você precisa adicionar um espaço para nome usandoSystem.Configuration
;Embora você tenha usado esse espaço para nome, ao tentar usar a
ConfigurationManager
classe, o sistema mostra um erro "o gerenciador de configuração não existe no contexto atual". Para resolver este problema:fonte
Tem certeza de que adicionou uma referência ao assembly .NET e não outra coisa? Eu removia sua referência e tentava adicioná-la novamente, certificando-se de selecionar a guia .NET na caixa de diálogo de referência do Visual Studio - a versão mais recente deve ser 2.0.0.0 no GAC.
fonte
agora você pode:
fonte
Para uma verificação de integridade, tente criar um novo projeto de aplicativo Web, abra o código atrás da página Default.aspx. Adicione uma linha no Page_Load para acessar sua cadeia de conexão.
Ele deve ter System.Configuration adicionado como referência por padrão. Você também deve ver a instrução using na parte superior do seu arquivo de código.
Meu código por trás do arquivo agora se parece com isso e é compilado sem problemas.
Isso pressupõe que eu possua uma cadeia de conexão no meu web.config com um nome igual a "MyConnectionStringName", assim ...
Sim, é elementar, eu sei. Mas, se você não tem idéias melhores, às vezes, isso ajuda a comparar algo realmente simples que você sabe que deve funcionar.
fonte
Basta instalar
então use
fonte
Se esse código estiver em um projeto separado, como um projeto de biblioteca. Não forneça para adicionar referência ao system.configuration.
fonte
Você também pode receber esse erro se adicionar uma referência a um projeto diferente e não relacionado por engano. Verifique se isso se aplica a você.
fonte
Para resolver esse problema, vá para o Solution Explorer E clique com o botão direito do mouse em reference e clique em add reference e escolha .net e encontre system.configuration selecione um clique ok
fonte
Inclua o arquivo do gerenciador de configuração para conectar-se ao banco de dados web.config
fonte