519 Stimmen

Der Name 'ConfigurationManager' existiert nicht im aktuellen Kontext

Ich versuche den Zugang zu connectionStrings aus der Konfigurationsdatei. Der Code ist ASP.NET + C#. Ich habe hinzugefügt System.Configuration zu verweisen und auch bei der Verwendung erwähnt. Aber trotzdem wurde die Baugruppe nicht akzeptiert.

Ich verwende VSTS 2008. Haben Sie eine Idee, was der Grund dafür sein könnte?

Seltsam ist auch, dass der Name der Baugruppe als "System.configuration" angezeigt wird, also mit einem kleinen c, was bei anderen Systembaugruppen nicht der Fall ist.

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; }
        }  
    }  
}

Konfig:

<?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=&quot;Data Source=localhost;Initial Catalog=qbank;Persist Security Info=True;User ID=**;Password=****;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

20voto

Ich füge diese Antwort hinzu, da keine der vorgeschlagenen Lösungen bei mir funktioniert.

  1. Klicken Sie mit der rechten Maustaste auf die Registerkarte Referenzen, um eine Referenz hinzuzufügen.
  2. Klicken Sie auf die Registerkarte Baugruppen
  3. Suche nach 'System.Configuration'
  4. Klicken Sie auf OK.

13voto

Samir Morimoto Punkte 169
  1. Klicken Sie mit der rechten Maustaste auf Projekt
  2. Manager NuGet-Paket auswählen
  3. System.Konfiguration finden
  4. Wählen Sie System.Configuration.ConfigurationManager von Microsoft
  5. Installieren Sie

jetzt können Sie es:

using System.Configuration;

9voto

Emu Punkte 91

Ich habe eine bessere Lösung für dieses Problem gefunden configurationmanager does not exist in the current context .

Zu einer gelesenen Verbindungszeichenfolge von web.config müssen wir ConfigurationManager Klasse und ihre Methode. Wenn Sie die Klasse verwenden möchten, müssen Sie den Namespace mit System.Configuration ;

Obwohl Sie diesen Namespace verwendet haben, wird beim Versuch, die ConfigurationManager Klasse, dann zeigt das System den Fehler "configurationmanager existiert nicht im aktuellen Kontext". Um dieses Problem zu lösen:

ConfigurationManager.ConnectionStrings["ConnectionSql"].ConnectionString;

9voto

Matt Punkte 23047

Wenn Sie eine Menge Warnungen erhalten (in meinem Fall 64 in einer Lösung!) wie

CS0618: 'ConfigurationSettings.AppSettings' ist veraltet: 'Diese Methode ist veraltet, sie wurde ersetzt durch System.Configuration!System.Configuration.ConfigurationManager.AppSettings'

weil Sie ein älteres Projekt aktualisieren, können Sie wie folgt viel Zeit sparen:

  1. hinzufügen System.Configuration als Verweis auf Ihre Referenzen Abschnitt.
  2. Fügen Sie die folgenden beiden using Anweisungen an den Anfang jeder Klasse ( .cs ) Datei:

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

Durch diese Änderung werden alle Vorkommen von

ConfigurationSettings.AppSettings["mySetting"]

verweist nun auf den richtigen Konfigurationsmanager, nicht mehr auf den veralteten, und alle CS0618-Warnungen verschwinden sofort.

Bedenken Sie natürlich, dass dies ein schneller Hack ist. Langfristig sollten Sie eine Umstrukturierung des Codes in Betracht ziehen.

7voto

Dan Diplo Punkte 24765

Sind Sie sicher, dass Sie einen Verweis auf die .NET-Assembly und nicht auf etwas anderes hinzugefügt haben? Ich würde Ihren Verweis entfernen und dann versuchen, ihn erneut hinzuzufügen. Stellen Sie sicher, dass Sie im Referenzdialog von Visual Studio die Registerkarte .NET auswählen - die neueste Version sollte 2.0.0.0 im GAC sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X