3 Stimmen

C# Lesen von Konfigurationseinstellungen

Ich habe eine C#-Klassenbibliothek A, die einige Konfigurationseinstellungen in seiner App.config hat ich sie mit zugreifen

Method1()
{
string connectionString = ConfigurationManager.AppSettings["ConnectionString"];
}

Wenn ich jedoch Methode 1() aus meinem ASP-Webprojekt B aufrufe, kann es die Konfigurationseinstellungen in der Klassenbibliothek A nicht finden

Haben Sie eine Idee, was hier vor sich geht?

4voto

Charles Bretana Punkte 137391

Die gesamte Struktur der Konfigurationsverwaltung, die von der .Net-Laufzeit erstellt wird, ist prozessspezifisch und nicht assembliespezifisch. Das bedeutet, dass jede laufende ausführbare Datei eine app.config erhält. Ein Webprojekt erhält eine web.config (eigentlich kann ein Webprojekt mehrere web.configs haben), aber Assemblies können keine eigenen app.configs haben, sie können Code haben, um die Konfigurationseinstellungen in der Konfigurationsdatei für den Prozess zu lesen, in dem sie referenziert werden (was verwenden. die Baugruppe als Verweis in einer Winforms-Anwendung, dann kann es Confiog-Einstellungen in der MyWinformsApplication.exe.config sehen; Verwenden Sie die Baugruppe in einer ASP.Net-Webanwendung, dann kann es Confiog-Einstellungen in der Webanwendungen "web.config" sehen...

2voto

NotMe Punkte 86089

Die Konfigurationseinstellungen müssen in Ihre web.config kopiert werden. Im Wesentlichen gibt es nur eine Standardkonfigurationsdatei pro Projekt, die der ConfigurationManager liest.

2voto

Thomas Levesque Punkte 277723

Eine Bibliothek hat keine eigene Konfigurationsdatei. Die Konfigurationseinstellungen sollten in der Exe definiert werden, die diese Bibliothek verwendet

2voto

DOK Punkte 31893

Ich glaube, Sie können Folgendes verwenden OpenExeKonfiguration um dies zu tun:

string exePath = "<full path and name of the app .exe file>";

System.Configuration.Configuration otherConfig = 
     ConfigurationManager.OpenExeConfiguration(exePath);

Sie könnten den Pfad der anderen Exe-Datei in die web.config der Webanwendung aufnehmen (z. B. in den Abschnitt appSettings) und von dort auslesen, was besser wäre, als ihn hier hart zu kodieren.

um die appSettings in dieser Konfigurationsdatei anzuzeigen:

AppSettingsSection otherAppSettings = otherConfig.AppSettings;

Diese MSDN-Seite könnte helfen.

0voto

Justin Drury Punkte 748

Es sucht nach der Konfigurationseinstellung in Ihrem Webprojekt.

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