So erhalten Sie eine Anwendungseinstellung für alle Benutzer, die zur Laufzeit geändert werden kann

8

Ich brauche eine Einstellung für eine Anwendung, die für alle Benutzer des Computers freigegeben wird, aber auch zur Laufzeit geändert werden kann. Diese Naht einfach, aber nach dem Anwendungseinstellungen MSDN Artikel , es ist entweder das eine oder das andere.

  

Es gibt zwei Arten von Anwendungseinstellungen basierend auf dem Bereich:

     
  • Anwendungsspezifische Einstellungen können für Informationen wie eine URL für einen Web-Service oder eine Datenbankverbindungszeichenfolge verwendet werden. Diese Werte sind mit der Anwendung verknüpft. Daher können Benutzer sie zur Laufzeit nicht ändern.

  •   
  • Benutzerspezifische Einstellungen können für Informationen verwendet werden, z. B. um die letzte Position eines Formulars oder eine bevorzugte Schriftart beizubehalten. Benutzer können diese Werte zur Laufzeit ändern.

  •   

Ich könnte Code schreiben, um die app.config-XML-Datei zu bearbeiten, aber da sie sich im Programmverzeichnis befindet, ist sie unter Windows 7 geschützt. Dies ist also nicht möglich, ohne das Programm zu erhöhen oder mit NTFS-Rechten zu spielen.

Also muss die Konfigurationsdatei in einen gemeinsamen Ordner wie System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) geschrieben werden.

Aber das ist eine ziemlich häufige Anforderung!

Also, ich frage mich, ob es eine einfache Möglichkeit gibt, dies zu erreichen, ohne das Rad neu zu erfinden, oder wenn ich meinen eigenen Einstellungsmanager schreiben muss.

    
DavRob60 30.04.2013, 18:27
quelle

3 Antworten

4

Ich hatte ein ähnliches Problem und habe meine eigene Einstellungs-Klasse geschrieben. Es war sehr einfach. Ich habe eine Settings-Klasse mit den benötigten Eigenschaften und einen SettingsManager mit Save () - und Load () -Methoden erstellt, die das Objekt einfach per XmlSerializer in / aus einer Datei serialisierten / deserialisierten.

Ja, es ist Ihr eigener Code, aber es ist ein sehr einfacher Code, der weniger Zeit in Anspruch nimmt, als herauszufinden, ob es eine Komponente gibt, die Ihnen bietet, was Sie brauchen und wie Sie sie anpassen können.

    
gabnaim 30.04.2013, 19:11
quelle
2

Nachdem ich die Antworten hier gelesen und mit den ConfigurationManager.Open Methoden gespielt habe, habe ich folgendes gefunden:

%Vor%

Der nette Teil ist, dass die Datei nicht existieren muss, und wenn Sie Save() aufrufen, erstellt sie den Ordner und die Datei für Sie. AppSettings["key"] hat nicht funktioniert, also musste ich

verwenden %Vor%

um einen vorhandenen Wert zu lesen und zu schreiben und

%Vor%

um einen neuen Wert hinzuzufügen.

    
AlexDev 26.08.2014 12:24
quelle
1

Die Anwendungseinstellungen-Infrastruktur unterstützt dies nicht - nur nicht editierbare Anwendungsdaten und benutzerspezifische Daten werden unterstützt. Sie können Ihre eigenen XML-Dateien jedoch problemlos in den Ordnern CommonApplicationData lesen und schreiben, anstatt die Anwendungsdaten zu verwenden.

    
Reed Copsey 30.04.2013 18:29
quelle