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>

889voto

Kieran Punkte 16478

Es ist nicht nur notwendig, die Namensraum System.Configuration . Sie müssen auch den Verweis auf die Montage System.Configuration.dll von

  1. Klicken Sie mit der rechten Maustaste auf das Referenzen/Abhängigkeiten
  2. Wählen Sie Referenz hinzufügen
  3. Suchen und hinzufügen System.Configuration .

Das wird mit Sicherheit funktionieren. Auch für die NameValueCollection müssen Sie schreiben:

using System.Collections.Specialized;

101voto

Rameez Punkte 1009

Klicken Sie in Ihrem Projekt mit der rechten Maustaste, Referenz hinzufügen... finden Sie auf der Registerkarte .NET die Option System.Configuration Komponentenname und klicken Sie auf OK.

using System.Configuration weist den Compiler/IntelliSense an, in diesem Namespace nach allen von Ihnen verwendeten Klassen zu suchen. Andernfalls müssten Sie den vollständigen Namen verwenden ( System.Configuration.ConfigurationManager ) jedes Mal. Wenn Sie den Verweis jedoch nicht hinzufügen, wird der Namensraum/die Klasse nirgendwo gefunden.

Beachten Sie, dass eine DLL einen beliebigen Namespace haben kann, so dass die Datei System.Configuration.dll könnte theoretisch den Namespace Some.Random.Name . Aus Gründen der Klarheit/Konsistenz sind sie normalerweise gleich, aber es gibt Ausnahmen.

46voto

pencilslate Punkte 12598

Ok nach dem Neustart des VSTS hat es funktioniert. Die Link schlug die Lösung für dasselbe Problem vor. Ich wünschte, ich hätte es vorher sehen können :)

36voto

calios Punkte 495

Hinzufügen der System.Configuration als Referenz für alle Projekte zu verwenden, wird dieses Problem lösen.

  1. Gehe zu Project -> Add Reference

  2. Klicken Sie in dem daraufhin angezeigten Feld auf die Schaltfläche All assemblies Registerkarte "Liste" in der linken Liste.

  3. Blättern Sie in der zentralen Liste zu System.Configuration und vergewissern Sie sich, dass das Kästchen markiert ist.

  4. Klicken Sie zum Übernehmen auf ok, und Sie können nun auf die ConfigurationManager Klasse.

25voto

Saad Lembarki Punkte 404

Einfach installieren

Install-Package System.Configuration.ConfigurationManager -Version 4.5.0

dann verwenden Sie

using System.Configuration;

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