Le nom ‘ConfigurationManager’ n’existe pas dans le contexte actuel

J’essaie d’accéder à connectionSsortingngs partir du fichier de configuration. Le code est ASP.NET + C #. J’ai ajouté System.Configuration à la référence et mentionné avec l’utilisation. Mais il n’accepterait toujours pas l’assemblée.

J’utilise VSTS 2008. Une idée de ce que pourrait être la raison?

Une autre chose étrange est le nom de l’assembly affiché sous le nom “System.configuration”, un minuscule c qui ne correspond pas à la manière dont les noms sont affichés pour les autres assemblys du système.

 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; namespace Utility { public class CommonVariables { public static Ssortingng ConnectionSsortingng { get { return ConfigurationManager.ConnectionSsortingngs["EmployeeEntities"].ConnectionSsortingng; } } } } 

Config:

       

Il n’est pas seulement nécessaire d’utiliser l’ espace de noms System.Configuration . Vous devez également append la référence à l’ assembly System.Configuration.dll , par

  1. Cliquez avec le bouton droit sur les références / dépendances
  2. Choisissez Ajouter une référence
  3. Recherchez et ajoutez System.Configuration .

Cela fonctionnera à coup sûr. Pour la NameValueCollection vous devez également écrire:

 using System.Collections.Specialized; 

Dans votre projet, cliquez avec le bouton droit de la souris sur Ajouter une référence , dans l’onglet .NET, recherchez le nom du composant System.Configuration , puis cliquez sur OK.

using System.Configuration indique au compilateur / IntelliSense de rechercher dans cet espace de noms 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 nom, de sorte que le fichier System.Configuration.dll pourrait, en théorie, avoir l’espace de noms Some.Random.Name . Pour plus de clarté et de cohérence, ils sont généralement les mêmes, mais il existe des exceptions.

Ok .. ça a fonctionné après avoir redémarré le VSTS. Le lien a suggéré la solution pour le même problème. J’aurais bien pu le voir avant. 🙂

Ajout de cette réponse, car aucune des solutions proposées ne fonctionne pour moi.

  1. Cliquez avec le bouton droit sur l’onglet Références pour append une référence.
  2. Cliquez sur l’onglet Assemblies
  3. Rechercher ‘System.Configuration’
  4. Cliquez sur OK.

J’ai une meilleure solution pour le problème de configurationmanager does not exist in the current context .

Pour une chaîne de connexion en lecture à partir de web.config nous devons utiliser la classe ConfigurationManager et sa méthode. Si vous souhaitez utiliser, vous devez append un espace de noms à l’aide de System.Configuration ;

Bien que vous ayez utilisé cet espace de noms, lorsque vous essayez d’utiliser la classe ConfigurationManager , le système affiche une erreur «Le gestionnaire de configuration n’existe pas dans le contexte actuel». Pour résoudre ce problème:

 ConfigurationManager.ConnectionSsortingngs["ConnectionSql"].ConnectionSsortingng; 

Si vous recevez beaucoup d’avertissements (dans mon cas 64 dans une solution!) Comme

CS0618: ‘ConfigurationSettings.AppSettings’ est obsolète: ‘Cette méthode est obsolète, elle a été remplacée par System.Configuration! System.Configuration.ConfigurationManager.AppSettings’

Comme vous mettez à niveau un projet plus ancien, vous pouvez gagner beaucoup de temps comme suit:

  1. Ajoutez System.Configuration comme référence à votre section Références .
  2. Ajoutez les deux instructions suivantes en haut de chaque fichier de classe ( .cs ):

    using System.Configuration; using ConfigurationSettings = System.Configuration.ConfigurationManager;

Par ce changement tous les événements de

 ConfigurationSettings.AppSettings["mySetting"] 

va maintenant faire référence au bon gestionnaire de configuration, plus à la version obsolète, et tous les avertissements CS0618 disparaîtront immédiatement.

Bien sûr, gardez à l’esprit que c’est un hack rapide. À long terme, vous devriez envisager de modifier le code.

Êtes-vous sûr d’avoir ajouté une référence à l’assembly .NET et pas autre chose? Je supprimerais votre référence et essaierais de la rappend, en veillant à sélectionner dans l’onglet .NET du dialog de référence de Visual Studio – la dernière version devrait être 2.0.0.0 dans GAC.

Pour une vérification de la validité, essayez de créer un nouveau projet d’application Web, ouvrez le code pour la page Default.aspx. Ajoutez une ligne dans Page_Load pour accéder à votre chaîne de connexion.

System.Configuration doit être ajouté comme référence par défaut. Vous devriez également voir l’énoncé d’utilisation en haut de votre fichier de code.

Mon code derrière fichier ressemble maintenant à ceci et comstack sans aucun problème.

 using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; namespace WebApplication1 { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { ssortingng connSsortingng = ConfigurationManager.ConnectionSsortingngs["MyConnectionSsortingngName"].ConnectionSsortingng; } } } 

Cela suppose que je possède une chaîne de connexion dans mon fichier web.config avec un nom égal à “MyConnectionSsortingngName” comme ça …

         

Oui, c’est élémentaire je sais. Mais si vous n’avez pas de meilleures idées, il est parfois utile de vérifier si quelque chose de très simple devrait fonctionner.

Si ce code est sur un projet séparé, comme un projet de bibliothèque. Ne pas oublier d’append une référence à system.configuration.

Vous pouvez également obtenir cette erreur si vous ajoutez une référence à un autre projet non lié par erreur. Vérifiez si cela vous concerne.

Pour résoudre ce problème, accédez à l’explorateur de solutions. Cliquez avec le bouton droit de la souris sur la référence, cliquez sur Ajouter une référence, choisissez .net et recherchez system.configuration sélectionnez un clic, puis cliquez sur OK.