2010-03-23 11 views
10

Ich möchte einige benutzerdefinierte Daten in der Anwendungskonfigurationsdatei speichern, und ich muss einige benutzerdefinierte Abschnitte in app.config erstellen. Das Lesen von benutzerdefinierten Daten aus app.config ist eine einfache Aufgabe, aber ich kann keine Informationen aus meinem Programm in app.config schreiben. Um eine Lösung für dieses Problem zu finden, erstelle ich ein Testprojekt.Benutzerdefinierte Abschnitte in app.config schreiben

Für Daten aus benutzerdefinierten Abschnitt app.config Lesen habe ich Informationen aus diesem Artikel:

http://devlicio.us/blogs/derik_whittaker/archive/2006/11/13/app-config-and-custom-configuration-sections.aspx

Antwort

4

Erste Überschreibung IsReadyOnly() in Ihrem CustomConfigSection false zurück.

Sobald Sie getan haben, dass Sie so etwas wie diese (dies ist für ASP.NET, aber es könnte sein, übertragbar) tun können sollen:

System.Configuration.Configuration configFile = WebConfigurationManager.OpenWebConfiguration("~"); 
CustomConfigSection config = (CustomConfigSection)configFile.GetSection("Custom"); 
config.Tweak = 1; 
config.Change = "foo"; 
configFile.Save(); 

geben, dass ein Versuch.

+2

Meinen Sie override 'IsReadOnly()', um 'false' zurückzugeben? – FrustratedWithFormsDesigner

+0

Ja. Ich bin ein Wally. Editiert. – Pike65

+0

Vielen Dank! Es ist sehr einfach und sehr nützlich! –

5

Sie sollten wirklich nichts zu app.config schreiben, denn wenn Sie dies tun, beschränken Sie die Verwendung Ihrer App nur für Administratoren. Es ist besser, Einstellungen in eine separate Datei .config in einem Benutzerprofilordner zu schreiben, z. <profiles>\<user name>\Application Data\<your product name>.

+0

Danke. Ich denke, dass Benutzer der Anwendung Lese- und Schreibrechte nur benötigen. Wenn ich falsch liege, korrigiere mich bitte. –

+1

Zur Verdeutlichung: Die Datei 'app.config' wird in einem Ordner unterhalb von Programmdateien installiert. Standardmäßig ist dies so eingestellt, dass kein Schreibzugriff auf Standardbenutzer möglich ist. Obwohl .NET es Ihnen gerne erlaubt, über die normale Konfigurations-API in jede '.config'-Datei zu schreiben, wenn Sie es tatsächlich als Standardbenutzer ausführen, erhalten Sie eine Sicherheitsausnahme. –

+0

Danke. Ich werde mich daran erinnern. Ich werde oportunity zum Schreiben in app.config für meine Windows-Dienste verwenden, nicht für Desktop-Anwendungen. –

Verwandte Themen