GPSViewer
PDA & GIS
GPS Tools
Uhrwerk
Content Management
Programmierung
     
 

Settings in C#

Softwareentwicklung
Softwarequalität
Systeme & Branchen
Werkzeuge
Techniken
Datenbanken
Open Source Projekte
Quelltext Snippets
Outlook->XML->MySQL
Outlook DataSet Schema
MySQL mit C# und .NET
Settings in C# 

Konfigurationseinstellungen bei Update einer .NET 2.0 Anwendung übernehmen

Mit dem Settings-Mechanismus von VS 2005 werden bei der Veröffentlichung von neueren Versionen die Anwendungseinstellungen aus der vorherigen nicht übernommen sondern nur die "Default Werte" gesetzt.

Hier eine Methode in C# die bei Update einer .NET 2.0 Anwendung die alten Einstellungen übernimmt.

Der Mechanismus erfordert die Variable "bool firstTime Default = True" in dem Anwendungs Setting.

using System.Collections;
using System.Collections.Generic;

namespace mySpace
{
    // Diese Klasse ermöglicht die Behandlung bestimmter Ereignisse der Einstellungsklasse:
    internal sealed partial class mySettings{

        public mySettings() {
              this.SettingsLoaded += this.SettingsLoadedEventHandler; // Ereignisshander der Einstellungsklasse hinzufügen
        }

        private void SettingsLoadedEventHandler(object sender, System.Configuration.SettingsLoadedEventArgs e)
        {
            if (this.firstTime) { // Startet diese Version der Anwendung das erst mal?
                bool fT = true;
                this.firstTime = false; // oder irgenwo im Programm setzten
                this.Save();
                // Versuch die alten Anwendungseinstellunden zu finden
                try
                {
                    fT = (bool)GetPreviousVersion("firstTime");
                }
                catch { 
                     // Erstinstallation, keine Einstellungen vorhanden
                     // löst Exception aus
                }
                if (!fT) {
                    // ältere Version installiert
                    IEnumerator enu = this.PropertyValues.GetEnumerator();
                    for (int i = 0; i < this.PropertyValues.Count; i++){
                        enu.MoveNext();
                        SettingsPropertyValue obj = (SettingsPropertyValue)enu.Current;
                        try
                        {
                            // hier werden die alten Einträge in die neuen übernommen
                            this[obj.Name] = GetPreviousVersion(obj.Name);
                        }
                        catch
                        {
                            // fehlende Einträge in alter Setting-Liste
                            // generieren eine Exception
                        }
                    }           
                }
            }
        }
   
}
}

 
Newsletter Kontakt/Impressum Login
    
Druckansicht
© 2007 ATLSoft