J'essaie d'accéder à connectionStrings
partir du fichier de configuration. Le code est ASP.NET + C #. J'ai ajouté System.Configuration
à la référence et également mentionné à l'aide. Mais il n'accepterait toujours pas l'assemblée.
J'utilise VSTS 2008. Une idée quelle pourrait être la raison?
Une autre chose étrange est le nom de l'assembly affiché comme "System.configuration", un minuscule c qui n'est pas la façon dont les noms sont affichés pour les autres assemblys système.
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>
Réponses:
Il n'est pas seulement nécessaire d'utiliser l' espace de noms
System.Configuration
. Vous devez également ajouter la référence à l' assemblageSystem.Configuration.dll
, enSystem.Configuration
.Cela fonctionnera à coup sûr. Aussi pour le
NameValueCollection
vous devez écrire:la source
Dans votre projet, cliquez avec le bouton droit sur Ajouter une référence ... , dans l'onglet .NET, recherchez le
System.Configuration
nom du composant et cliquez sur OK.using System.Configuration
indique au compilateur / IntelliSense de rechercher dans cet espace de noms toutes les classes que vous utilisez. Sinon, vous devrez utiliser le nom complet (System.Configuration.ConfigurationManager
) à chaque fois. Mais si vous n'ajoutez pas la référence, cet espace de noms / classe ne sera trouvé nulle part.Notez qu'une DLL peut avoir n'importe quel espace de noms, donc le fichier
System.Configuration.dll
pourrait, en théorie, avoir l'espace de nomsSome.Random.Name
. Pour plus de clarté / cohérence, ils sont généralement les mêmes, mais il existe des exceptions.la source
Ok .. cela a fonctionné après le redémarrage du VSTS. Le lien a suggéré la solution au même problème. J'aurais aimé pouvoir le voir avant. :)
la source
L'ajout de la
System.Configuration
référence as à tous les projets résoudra ce problème.Allez à
Project
->Add Reference
Dans la zone qui apparaît, cliquez sur l'
All assemblies
onglet de liste dans la liste de gauche.Dans la liste centrale,
System.Configuration
faites défiler et assurez-vous que la case est cochée.Cliquez sur OK pour postuler et vous pourrez désormais accéder au
ConfigurationManager
cours.la source
Ajout de cette réponse, car aucune des solutions suggérées ne fonctionne pour moi.
la source
Si vous recevez beaucoup d'avertissements (dans mon cas 64 dans une solution!) Comme
parce que vous mettez à niveau un ancien projet, vous pouvez gagner beaucoup de temps comme suit:
System.Configuration
comme référence à votre section Références .Ajoutez les deux
using
instructions suivantes en haut de chaque.cs
fichier class ( ):using System.Configuration; using ConfigurationSettings = System.Configuration.ConfigurationManager;
Par ce changement, toutes les occurrences de
référencera désormais le bon gestionnaire de configuration, et non plus le obsolète, et tous les avertissements CS0618 disparaîtront immédiatement.
Bien sûr, gardez à l'esprit qu'il s'agit d'un hack rapide. À long terme, vous devriez envisager de refactoriser le code.
la source
J'ai obtenu une meilleure solution pour le problème
configurationmanager does not exist in the current context
.Pour une chaîne de connexion en lecture,
web.config
nous devons utiliser laConfigurationManager
classe et sa méthode. Si vous souhaitez utiliser, vous devez ajouter un espace de noms en utilisantSystem.Configuration
;Bien que vous ayez utilisé cet espace de noms, lorsque vous essayez d'utiliser la
ConfigurationManager
classe, le système affiche une erreur «configurationmanager n'existe pas dans le contexte actuel». Pour résoudre ce problème:la source
Êtes-vous sûr d'avoir ajouté une référence à l'assembly .NET et pas autre chose? Je supprimerais votre référence, puis j'essaierais de l'ajouter à nouveau, en vous assurant de sélectionner dans l'onglet .NET de la boîte de dialogue de référence de Visual Studio - la dernière version devrait être 2.0.0.0 dans GAC.
la source
maintenant vous pouvez:
la source
Pour une vérification d'intégrité, essayez de créer un nouveau projet d'application Web, ouvrez le code derrière pour la page Default.aspx. Ajoutez une ligne dans▶Load pour accéder à votre chaîne de connexion.
Il devrait avoir System.Configuration ajouté comme référence par défaut. Vous devriez également voir déjà l'instruction using en haut de votre fichier de code.
Mon code derrière le fichier ressemble maintenant à ceci et se compile sans problème.
Cela suppose que j'ai une chaîne de connexion dans mon web.config avec un nom égal à "MyConnectionStringName" comme ça ...
Ouais, c'est élémentaire je sais. Mais si vous n'avez pas de meilleures idées, il est parfois utile de comparer avec quelque chose de vraiment simple qui devrait fonctionner.
la source
Installez simplement
puis utilisez
la source
Si ce code se trouve sur un projet distinct, comme un projet de bibliothèque. N'oubliez pas d'ajouter une référence à system.configuration.
la source
Vous pouvez également obtenir cette erreur si vous ajoutez par erreur une référence à un projet différent et non lié. Vérifiez si cela s'applique à vous.
la source
Pour résoudre ce problème, allez dans l'Explorateur de solutions Et cliquez avec le bouton droit sur la référence et cliquez sur Ajouter une référence et choisissez .net et trouvez system.configuration sélectionnez un clic ok
la source
Ajoutez le fichier du gestionnaire de configuration pour vous connecter à la base de données web.config
la source