Announcement

Collapse
No announcement yet.

Probleme mit der App Config

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit der App Config

    Guten Morgen Leute! :P

    Folgendes hat sich zugetragen:
    Zur Zeit mache ich eine Ausbildung zum Entwickler und habe eine Aufgabe bekommen, die nicht lösen kann. Daher möchte ich euch um eure Hilfe bitten!
    Sicher gibt es da wieder einen ganz einfachen Trick und ich sehe den Wald mal wieder vor lauter Bäumen nicht^^

    Ich habe da ein Programm und dieses Programm hat als Nebenfunktion ein Email Formular. Bis hier läuft alles ganz gut, aber dann lagerte ich die Settings in eine programmexterne XML Datei aus. Als mein Chef das sah, sagte er, ich solle das über die App.Config regeln.

    Kurze Zeit später stand schon eine Lösung via AppSettings bereit und mein Chef beauftragte mich, dass Problem per ConfigurationSection bzw ConfigurationManager zu lösen.

    Ich habe bisher herausgefunden, dass es sich dabei auch nur Klassen handelt, die die XML Knoten der App.Config auslesen, jedoch steige ich nicht hinter das Prinzip dieser Klassen oder deren Funktionsweise.

    als keinen "Hint" habe ich noch diesen Link bekommen:

    http://blog.lars-keller.net/SearchVi...x?q=startafter

    Und so ungefähr sollte die app.config aussehen:

    1<programSettings>
    2 <Settings>
    3 <eMailSettings>
    4 <hostSetting host="BLABLAhost" From="[email protected]" defaultMessage="Hello!" />
    5 </eMailSettings>
    6 </Settings>
    7</programSettings>


    Vielen Dank schonmal! :P

    Phil

  • #2
    Hallo und willkommen!

    Wenn du Visual Studio verwendest brauchst du selbst gar nichts programmieren. Der Designer erledigt das für dich.

    Unter Projekt | <Projektname> Eigenschaften und dann unter Einstellungen kannst du dir deine Anwendungseinstellungen anlegen. Dabei hast du die Wahl ob die Einstellung per User oder für die Anwendung gilt.

    Der Zugriff auf eine Einstellung erfolgt per Code:
    [highlight=c#]
    Properties.Settings.Default.MeineEinstellung; // liefer den typisierten Wert von MeineEinstellung
    [/highlight]

    Um die Einstellungen zu Speichern (falls diese geändert wurden) führe ich als letzten Befehl befor die Anwendung beendet wird das Speichern durch. D.h. in Program.cs
    [highlight=c#]
    static void Main()
    {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(fals e);
    Application.Run(new Form1());

    // Speichern der Einstellungen:
    Properties.Settings.Default.Save();
    }
    [/highlight]

    Nähere Infos gibts zB bei http://openbook.galileocomputing.de/...2562acda1462d3

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Guten Morgen Phil,

      Nur noch als kleiner Hinweis, wenn du im Code den 'ConfigurationManager' verwenden willst, musst du vorher noch eine Referenz auf 'System.Configuration' zum Projekt hinzufuegen.
      *-- robert.oh. --*

      Comment


      • #4
        Ahh :P

        Ok, ich habe wieder Fortschritte:

        danke erstmal @robert (aber das wusste ich schon^^)

        ich habe herausgefunden, dass von ConfigurationSection usw unbedingt ableiten muss!
        da muss ich die entsprechenden funktionen umschreiben und die dann verwenden :P

        bleibt nur noch der syntax, den ich nicht ganz verstehe :P

        http://msdn.microsoft.com/en-us/libr...onsection.aspx

        guckt euch am besten nochmal den link aus dem ersten Post an, da steht das schon recht ausführlich
        ich bleibe natürlich am ball und wenn ich was weiss, lass ich es euch wissen :P

        Dank'scheen

        der phil

        Comment


        • #5
          Warum nicht die Designer-Variante? Die schreibt den Code für dich. Du kannst ja sonst auch schauen wie die es macht und dort den Code abschreiben.

          mfG Gü
          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

          Comment

          Working...
          X