Benutzerdefinierte Anwendungseinstellungen in ASP.NET

8

Gerade bin ich auf ApplicationSettings in .NET WinForms gestoßen, die komplexe Typen behandeln könnten.
Zur Zeit verwende ich AppSettings in meinen ASP.NET WebForms, die nur mit String umgehen können.
Kann ich ApplicationSettings in Webforms verwenden? Wenn ja wie?

    
naveen 09.06.2011, 07:20
quelle

2 Antworten

36

Die Grundidee:

  1. Erstellen Sie in einem anderen Projekt Klassen, die Ihre benutzerdefinierten Einstellungen enthalten. Zum Beispiel:

    %Vor%
  2. Erstellen Sie das Projekt mit den Klassen.

  3. Wechseln Sie zur Registerkarte Einstellungen in Projekteigenschaften . Es wird sagen, dass es noch keine Einstellungsdatei gibt und fragen Sie, ob Sie sie erstellen möchten.

  4. Fügt eine neue Einstellungsdatei hinzu. Wählen Sie im Feld "type" Durchsuchen und geben Sie den vollständigen Klassennamen ein. Zum Beispiel: ClassLibrary.EndPointCollection . Speichern und erstellen Sie das Projekt neu.

  5. Drücken Sie die Bearbeitungsschaltfläche für den Einstellungswert. (Beachten Sie, dass dies nicht möglich ist, wenn sich die im vorherigen Schritt erstellten Klassen im selben Projekt befinden.) Verwenden Sie die Benutzeroberfläche, um die Einstellungen zu bearbeiten.

  6. Wenn Sie die Datei web.config / app.config öffnen, sehen Sie etwa Folgendes:

    %Vor%
  7. Um diese Einstellungen aus Ihrem Code zu lesen, verwenden Sie einfach

    %Vor%

    Der Designer hat hinter den Kulissen die stark typisierten Objekte erstellt, damit das oben Genannte funktionieren kann. Sie können die vollständigen Details in der Settings.Designer.cs -Datei sehen.

Untere Zeile: Sie können alle Arten von benutzerdefinierten Typeinstellungen vornehmen, solange diese Einstellungen XmlSerializable oder Typkonverter haben. Diese Technik funktioniert bei Webanwendungen, WinForms, WPF, Konsolenanwendungen usw.

    
Alex Aza 09.06.2011, 07:42
quelle
2

Hier ist eine Variation der akzeptierten Antwort, die folgende benutzerdefinierte Klasse zur Darstellung einer Einstellung verwendet:

%Vor%

Die angenommene Antwort schlägt die Verwendung einer speziellen Sammlungsklasse vor, EndPointCollection , um Einstellungen zu speichern. Ich glaube jedoch nicht, dass dies notwendig ist. Ein Array-Typ ( EndPoint[] ) scheint ebenfalls zu funktionieren.

Die Eingabe des Array-Typs im Typ-Browser funktioniert jedoch nicht; Sie können stattdessen den Typ direkt in der .settings -Datei angeben (mit einem Texteditor):

%Vor%

Auch wenn der in der akzeptierten Antwort angezeigte Werteditor nicht verfügbar ist, können Sie die Werte stattdessen direkt in das Wertefeld mit XML eingeben:

%Vor%

Beachten Sie, dass die XML-Namespacedeklarationen, die von Visual Studio generiert werden, in der XML-Datei nicht erforderlich sind (siehe oben).

    
Sam 26.06.2013 12:10
quelle

Tags und Links