2012-03-25 14 views

Antwort

11

Benutzerspezifische Einstellungen werden für eine Webanwendung tatsächlich nicht unterstützt. Und sie würden nicht funktionieren, Benutzereinstellungen müssten unter dem Users\<username>\... Ordner auf dem Server gespeichert werden.

Sie haben eine große Auswahl an Web-Techniken:

  • persistente Cookies
  • ASP.NET Mitgliedschaft Profile
  • Ihre eigene Db
2

Sie einfach Anwendungsbereich Einstellungen beschreibbar machen Hinzufügen eines Setter zu der Eigenschaft Definition in Settings.Designer.cs. Zum Beispiel:

[global::System.Configuration.ApplicationScopedSettingAttribute()] 
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
[global::System.Configuration.DefaultSettingValueAttribute("AdminContext")] 
public string DbContext 
{ 
    get { return ((string)(this["DbContext"])); } 
    set { this["DbContext"] = value; } } 

Der Nachteil ist, dass die Settings.Designer.cs automatisch generiert wird, und daher, wenn Sie den Designer UI verwenden, wird Ihre Setter überschrieben.

Dies funktioniert in Konsolen- und Webanwendungen.

+0

Obwohl dies nicht bewährt, es * macht * Arbeit und vollständig getestet. Angesichts der Tatsache, dass ich den Ansatz im Körper verkenne, glaube ich nicht, dass es sinnvoll ist, eine Abstimmung abzugeben. Diese Lösung wird "auf eigene Gefahr" genutzt, ist aber dennoch eine Lösung. – Shane

+0

*** Settings.Designer.cs wird automatisch generiert ***. Keine gute Lösung. –

14

Als ich dieses Problem hatte, stellte sich heraus, dass ich einen Verweis auf eine DLL hatte, die eine Settings.settings (oder Settings.Designer.cs) -Datei hatte.

Beim Bearbeiten der Setting.settings-Datei wird beim Klicken auf die leere Zeile am unteren Rand eine neue Zeile mit den Vorlageninformationen und einer Standardbenutzereinstellung anstelle der Anwendungseinstellung hinzugefügt. Dies ist ein nettes Feature, aber Sie können sehen, wie nach dem Ändern der Vorlage und Hinzufügen Ihrer neuen Einstellung, klicken Sie unten, um den Fokus zu verlieren eine neue Vorlage Zeile hinzugefügt wird und wenn Sie nicht aufpassen, Sie versehentlich eine Benutzereinstellung hinzufügen. Überprüfen Sie, ob diese Datei in einer referenzierten DLL enthalten ist, und entfernen Sie alle Benutzereinstellungen.

enter image description here

Verwandte Themen