Entwickler-Ecke

IO, XML und Registry - App.config lesen/schreiben in allen Projekten


mannyk - Fr 20.08.10 11:11
Titel: App.config lesen/schreiben in allen Projekten
Hallo liebe Community,

Ich habe mehrere Projekte in einer Solution und möchte gerne von den anderen Projekten (alle .NET 4.0)
eine App.config lesen und schreiben. Leider funktioniert nicht einmal das Lesen bis jetzt.


C#-Quelltext
1:
string s = ConfigurationManager.AppSettings["key"];                    


wenn ich folgende Zeile von einem anderen Projekt aufrufe, so ist der Wert null, weil die eigene App.config durchsucht wird und nicht jene im Zielprojekt. Kann man die "richtige" Config villeicht durch einen Namen finden oder gibt es eine andere Möglichkeit?

lg,
mannyk


Th69 - Fr 20.08.10 15:05

Dafür kannst du die Methode OpenExeConfiguration() verwenden.

Aber was willst du denn genau damit erreichen, denn Abspeichern kannst du nur die UserConfigs, nicht die ApplicationConfigs (außer du liest die Config-Datei manuell als XML ein und speicherst sie dann wieder verändert ab - inkl. Kommentare!).


mannyk - Mo 23.08.10 08:06

Hallo,

das Ziel ist eben eine Konfigurationsdatei zu haben, die von allen Projekten gelesen und geschrieben werden kann.

Dumme Frage: Was ist der Unterschied zwischen einer app.config und einer user config? Ich dachte es gäbe eben nur die app.config oder die web.config - je nach Projekttyp.

Lg,
mannyk


Th69 - Mo 23.08.10 10:42

Hallo,

sorry, hatte mich verschrieben: meinte UserSettings und ApplicationsSettings (also die Abschnitte innerhalb der app.config).
Eigentlich sollte aber jedes Projekt über seine eigene app.config verfügen.


mannyk - Mo 23.08.10 14:31

Hallo,

der lesende/schreibende Zugriff auf diese Abschnitte würde mir vollends reichen.

Gibt es dafür einen einfachen Weg, dies zu implementieren?
lg,
mannyk


ThoMa - Mo 23.08.10 15:15

Hallo,

Du solltest Dir vielleicht klar machen, dass Du nicht die Einstellungen einer Bibliothek bearbeiten solltest, sondern diese Einstellungen die Du global machen solltest, von der Host-Anwendung in die Bibliothek übergeben werden sollten und damit natürlich eine Einstellung der Host-Anwendung bzw. des Host-Projektes ist.

Das heißt:
Nicht mit Gewalt die Konfigurationsdateien umbiegen, sondern vernünftige Schnittstellen aufbauen und die Parameter übergeben.

Grüße
ThoMa


mannyk - Mo 23.08.10 16:12

Hallo,

das ist mir, denk ich, klar.

Ich wollte eben ein Projekt hinzufügen, dass sich nur auf die Installation, Datenbankgenerierung, etc. des eigentlichen Projektes spezialisiert. Aber dafür muss es eben auf die Config zugreifen können.

Was wäre denn sonst eine Lösung auf meine Ausgangssituation?

Danke und lg,
mannyk