Speichern hierarchischer Anwendungseinstellungen in web.config oder app.config

8

Ich muss meine Anwendungskonfigurationseinstellungen in einem hierarchischen Format in web.config oder app.config speichern. Ist das möglich? Oder muss ich es in einer XML-Datei oder Datenbank speichern und stattdessen verwenden? Das einfache Name-Wert-Paar-Format ist nicht genug für mich.

%Vor%

Es ist eine web-basierte Anwendung für die Berichterstattung und ich muss die Dateipfade für die Quelldateien, SSIS-Pakete, FTP-Server-Details usw. speichern.

Update: Wenn ich die Option für den benutzerdefinierten Konfigurationsabschnitt auswähle, kann ich die Einstellungen in einer separaten Datei speichern, um die Hauptdatei web.config in den Anwendungseinstellungen sauber zu halten?

    
RKP 04.01.2012, 14:57
quelle

4 Antworten

6

Sie können keine benutzerdefinierten Elemente zu appSettings hinzufügen.

Der beste Weg, um ein benutzerdefiniertes Format zu erreichen, ist es, Ihre eigene ConfigurationSettings -Klasse zu schreiben und diese in der Konfiguration zu verwenden.

Damit können Sie Daten stark typisiert speichern und aussagekräftige Element- und Attributnamen haben.

Siehe Vorgehensweise: Erstellen benutzerdefinierter Konfigurationsabschnitte mithilfe von ConfigurationSection auf MSDN.

    
Oded 04.01.2012, 15:01
quelle
3

Sie können XML-Elemente nicht so speichern, wie Sie es in App-Settings vorgeschlagen haben. Wenn Sie wie erwähnt eine Hierarchie benötigen, versuchen Sie einen der folgenden Ansätze

  1. Speichern Sie ganze XML-Elemente in Appsettings und parsen Sie die XML-Datei

    %Vor%
  2. Speichern Sie den Abschnitt "xml in config" (siehe Antworten oben)

  3. Verwenden Sie das Projekt DslConfig .
    Fügen Sie es mit NuGet hinzu und suchen Sie nach Beispielen für das AppSpike.
    In Ihrem Fall könnten Sie eine Klasse ReportConfig erstellen und diese Klasse als Konfigurationsklasse verwenden.
    Beispiel:

    %Vor%

Erstellen Sie einen Konfigurationsdateieintrag in Variables.var

%Vor%
  1. Probieren Sie das NConfig -Projekt
  2. aus
Johannes 10.02.2012 17:36
quelle
2

Sie können das nicht tun, wie Sie es vorschlagen.

Was Sie tun können, ist, nach dem Schlüsselnamen die Elemente zu gruppieren:

%Vor%

Der beste Weg wäre jedoch, Ihre eigene ConfigurationSection zu definieren.

Hier sind einige Links dazu:

Didier Ghys 04.01.2012 15:04
quelle
0

Der beste Ansatz, den ich kenne, besteht darin, eine eigene Settings-Klasse zu erstellen und sie zu serialisieren / desarialisieren, um Ihre App zu lesen / schreiben. Einstellungen.

Sie können auch Admin verwenden. Seite Ihrer Website, um alle Einstellungen zu speichern.

Vielleicht ist es in Ihrem Fall besser, eine Datenbank zu verwenden, um alle Einstellungen dort zu behalten.

    
Academy of Programmer 04.01.2012 15:04
quelle