2009-12-16 7 views
18

Was sollte diktieren, wenn ich die configurationManager.AppSettings oder die stark typisierten Einstellungen verwenden soll, die Visual Studio generiert? Die stark typisierten scheinen in den meisten Fällen viel geeigneter zu sein, aber ich nehme an, dass es möglich wäre, Einstellungen dynamisch zu einer bereitgestellten Anwendung hinzuzufügen, indem der ConfigurationManager-Ansatz verwendet wird. Gibt es jedoch Richtlinien, unter welchen Umständen jeder verwendet werden soll?ConfigurationManager.AppSettings ["Einstellungsname"] vs Properties.Settings.Default.SettingName Wann sollte ich jedes verwenden?

+1

Mögliches Duplikat von [Vor- und Nachteile von appSettings vs applicationSettings (.NET app.config)] (http://stackoverflow.com/questions/460935/pros-and-cons-of-appsettings-vs-applicationsettings-net -app-config) –

Antwort

10

Von was ich read, sieht aus wie AppSettings ist der ältere Weg, Dinge zu tun. MSDN docs besagt, dass Benutzereinstellungen zur Laufzeit geschrieben werden können, wenn Sie Einstellungen verwenden.

Ich bevorzuge immer stark typisierte Einstellungen, die mit ConfigSection-Handler implementiert werden können.

Pros and cons of appSettings vs applicationSettings (.NET app.config)

+0

Danke, diese Frage war das, wonach ich gesucht habe, als ich gesucht habe. –

6

Der größte Unterschied ist, dass die generierten Eigenschaften schreibgeschützt sind. Der Hauptgrund für die Verwendung von AppSettings ist also, wenn Sie sie schreiben wollen (was selten ist).

Und ja, Sie könnten AppSettings für dynamisch generierte Einstellungen verwenden, aber das ist auch selten.

+1

beide können manuell geändert werden, meinst du, dass generierte Eigenschaften nicht programmtechnisch geschrieben werden können, wenn das Programm läuft, aber die AppSettings könnten (wenn du es immer wolltest)? –

+0

Bebop: Ja (2x) –

2

Ich würde empfehlen, dass die lose eingegebenen Einstellungen älter sind und wirklich nur für die Abwärtskompatibilität verwendet werden sollten.

Die stark typisierten Einstellungen sind robuster, da sie stark typisiert sind.

2

Verwendung Properties.Settings.Default.SettingName. ConfigurationManager.AppSettings ["SettingName"] sollte jedoch nur verwendet werden, wenn die erste Verwendung nicht möglich ist.

+0

Bitte erläutern Sie, unter welchen Umständen die erste möglicherweise nicht verwendet werden kann? –

+0

Wenn Properties.Settings.Default in einer anderen Assembly verwendet wird. Wenn beispielsweise Einstellungen zur Assembly MyMainApplication gehören und MyBusinessLogicLibrary verwendet wird, kann MyBusinessLogicLibrary in diesem Fall nur auf die Methoden von "ApplicationSettingsBase" zugreifen. –