Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   C# ConfigurationManager speichert nicht - was kann los sein? (https://www.delphipraxis.net/78146-configurationmanager-speichert-nicht-kann-los-sein.html)

Jürgen Thomas 29. Sep 2006 16:55


ConfigurationManager speichert nicht - was kann los sein?
 
Hallo,

aus der NET-SDK-Doku habe ich folgenden Code übernommen:
Code:
using System.Configuration;
using JThomas.DGW.Config;
//...
Configuration cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
//  wenn der DbProvider in <appSettings> noch fehlt, dann eintragen
if (cfg.Sections["appSettings"] == null)       {
    ConfigurationSection newSection = cfg.AppSettings;
    cfg.Sections.Add("appSettings", newSection);
    newSection = cfg.Sections["appSettings"] as ConfigurationSection;
    newSection.SectionInformation.ForceSave = true;
    cfg.Save(ConfigurationSaveMode.Full);
}
//  eigene Section <Senderliste> eintragen, sofern erforderlich
if (cfg.Sections["DGW-Sender"] == null)           {
    SenderSection newSection = new SenderSection();
    newSection.Senderliste.Add(new SenderElement("RBB", "dgw-rbb", "SYSDBA", "masterkey", Arbeiten.Einlesen, "aktuell", DateTime.Now));
    newSection.Senderliste.Add(new SenderElement("NDR"));
    cfg.Sections.Add("DGW-Sender", newSection);
    cfg.Save(ConfigurationSaveMode.Full);  //  wird ohne Exception übergangen
}
Die 'eigene Section <senderliste>' habe ich nach den Beispielen aus ConfigurationElement-Klasse wörtlich übernommen und nur die eigene ConfigurationProperty vorgemerkt. Im übrigen habe ich den obigen Code aus dem ersten Beispiel zur ConfigurationManager-Klasse übernommen.

Nach der Arbeit mit dem Debugger scheint alles sauber zu laufen (es gab bei entsprechender Änderung auch eine provozierte Exception); aber appl.exe.config wird nicht gespeichert. Hat jemand eine Idee, was ich übersehen habe oder in welche Richtung ich weiter versuchen kann?

[/edit]Nachtrag: Ich arbeite ausschließlich lokal und bin mit UserName (mit Admin-Rechten) unter WinXP angemeldet. Fehlt vielleicht eine UserPolicy? Wenn ja, wo und welche?

Zusatzfrage: OpenExeConfiguration() liefert nicht nur die Inhalte der appl.exe.config, sondern in einer gemeinsamen Liste auch die Inhalte von machine.config, wie ich durch Analyse von cfg.Sections[] und cfg.SectionGroups[] festgestellt habe. Ist das von NET beabsichtigt, oder fehlt eine Einstellung?

Danke! Jürgen

Hinweis: Das Testprogramm habe ich mit VC# Express und NET 2.0 erstellt. Den integrierten Settings-Manager möchte ich nicht nutzen, weil ich meine Namespaces und Bezeichner selbst festlegen und SectionGroups verwenden will.

Jürgen Thomas 4. Okt 2006 07:54

Re: ConfigurationManager speichert nicht - was kann los sein
 
Gibt es wirklich niemanden, der mir helfen kann?! Jürgen


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz