Die Grundidee:
Erstellen Sie in einem anderen Projekt Klassen, die Ihre benutzerdefinierten Einstellungen enthalten. Zum Beispiel:
%Vor%Erstellen Sie das Projekt mit den Klassen.
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.
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.
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.
Wenn Sie die Datei web.config / app.config öffnen, sehen Sie etwa Folgendes:
%Vor%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.
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).
Tags und Links web-config .net c# asp.net settings