2009-06-29 19 views
13

Kann mir bitte jemand den Unterschied zwischen den Abschnitten AppSettings und ApplicationSettings in der App.Config-Datei erklären. Warum gibt es zwei verschiedene Abschnitte, die scheinbar dasselbe tun?Was ist der Unterschied zwischen den Abschnitten ApplicationSettings und AppSettings?

+0

Wo sehen Sie "Anwendungseinstellungen"? Ich glaube nicht, dass dies ein gültiger Konfigurationsabschnitt ist. Könnten Sie ein Beispiel veröffentlichen? – alanquillin

+1

Sorry, ich meine ApplicationSettings, nicht Application Settings – Calanus

Antwort

18

Ich glaube, dass die <appsettings/> Sammlung in Ihrem app.config/web.config können Sie Einstellungen speichern, in Schlüssel-Wert-Paare, und wird durch die System.Configuration API zugegriffen wird, wie folgt:

string setting = System.Configuration.ConfigurationManager.AppSettings["settingName"];

Einstellungen können nur als String-Werte gespeichert und abgerufen werden.
Sie können auch über System.Configuration.ConfigurationSettings zugegriffen werden, aber dieser Weg ist veraltet.

Die <ApplicationSettings/> Sammlung in Ihrer Konfigurationsdatei speichert Ihre Einstellungen in einer stark typisierten Weise und ermöglicht Ihnen auch, auf diese Einstellungen in einer stark typisierten Weise zuzugreifen. VS erstellt automatisch Wrapper-Klassen für Sie in der Datei settings.settings im Ordner Properties Ihres Projekts. Um eine Einstellungsdatei zu Ihrem Projekt hinzuzufügen, klicken Sie mit der rechten Maustaste auf Ihr Projekt und klicken Sie auf Eigenschaften, dann öffnen Sie die Registerkarte Einstellungen. Klicken Sie dann auf den Link, um eine neue Einstellungsdatei hinzuzufügen. VS wird automatisch eine für Sie erstellen. So einfach ist das.

Sie greifen in der Regel Ihre Einstellungen wie folgt:

MyProjectName.Properties.Settings.Default.SettingName

Beachten Sie den Unterschied in, wie die beiden Sammlungen zugegriffen wird.

Die zweite (nicht veraltete) Möglichkeit zum Speichern von Einstellungen ist der bessere Weg und bietet viel Flexibilität und Leistung. Es braucht etwas lernen - aber es ist die Mühe wert.

+10

"Die obige Vorgehensweise ist veraltet." - System.Configuration.ConfigurationSettings.AppSettings ist veraltet, wird jedoch durch System.Configuration.ConfigurationManager.AppSettings ersetzt. Die Verwendung des Konfigurationsabschnitts ist nicht veraltet. – Joe

+0

Ahh richtig! Danke für diese Klarstellung. – Calanus

+0

Beinahe verpasst @ Joes Nachtrag. Es wurde dem ursprünglichen Post für Personen hinzugefügt, die nicht alle Kommentare lesen. –

0

Es ist mit Rückwärtskompatibilität zu tun, die wir alle lieben. ApplicationSettings ist das neuere Konstrukt.

Verwenden Sie die neueren Klassen ConfigurationManager und WebConfigurationManager, um Ihre Einstellungen jetzt zu erhalten, und Sie benötigen dazu eine Referenz, also System.configuration und nicht System.Configuration :).

An einem Punkt wurde es ein bisschen albern, nicht wahr.

Verwandte Themen