Konfigurationsdatei in C# erstellen?

  • C#

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von SysOp1.

    Konfigurationsdatei in C# erstellen?

    Hallo ihr Lieben,
    ich habe eine kleine Frage und zwar möchte ich eine Konfigurationsdatei schreiben und lesen.

    Die Werte in der Konfigurationsdatei würden z.B so aussehen:

    Quellcode

    1. // Datenbank Info
    2. db.host=127.0.0.1
    3. db.port=3306
    4. db.benutzer=root
    5. db.passwort=
    6. db.name=


    nun ist meine hauptsächliche Frage, was wäre am besten, INI, JSON oder eher XML?
    Ich möchte etwas zeitgemäßes, denke das es bei all denen hier keine großartigen Performanceunterschiede gäbe bei solch einen kurzen Prozess mit solch wenig Daten. :D

    Welcher Weg ist eurer Meinung der beste? Ich bin dankbar für jede Antwort :)
    @SysOp1 INI ist Out, der Rest ist Geschmackssache.
    Hier ein Settings-Rumpf, ganz easy XML-serialisierbar:
    Spoiler anzeigen

    C#-Quellcode

    1. using System.IO;
    2. using System.Xml.Serialization;
    3. /// <summary>
    4. /// Klasse, die die Settings hält, speichert und lädt
    5. /// </summary>
    6. public static class Settings
    7. {
    8. /// <summary>Settings-Member</summary>
    9. public int Port { get; set; }
    10. /// <summary>Settings-Member</summary>
    11. public string User { get; set; }
    12. public Settings()
    13. {
    14. // zur Serialisierung
    15. }
    16. /// <summary>
    17. /// Speichern der Settings als XML-Datei
    18. /// </summary>
    19. /// <param name="settings">zu speichernde Settings</param>
    20. /// <param name="path">Pfad der XML-Datei</param>
    21. public static void WriteSettings(Settings settings, string path)
    22. {
    23. if (settings == null)
    24. {
    25. return;
    26. }
    27. // Serialize object to a XML file.
    28. using (StreamWriter sw = new StreamWriter(path))
    29. {
    30. XmlSerializer x = new XmlSerializer(settings.GetType());
    31. x.Serialize(sw, settings);
    32. }
    33. }
    34. /// <summary>
    35. /// Laden der Kamera-Settings
    36. /// </summary>
    37. /// <param name="path">Pfad der XML-Datei</param>
    38. /// <returns>die geladenen Settings</returns>
    39. public static Settings ReadSettings(string path)
    40. {
    41. Settings settings = new Settings();
    42. try
    43. {
    44. // Deserialize text file to a new object.
    45. using (StreamReader sr = new StreamReader(path))
    46. {
    47. XmlSerializer x = new XmlSerializer(settings.GetType());
    48. settings = (Settings)x.Deserialize(sr);
    49. }
    50. }
    51. catch
    52. {
    53. // nix tun, die Settings-Instanz ist nicht valid,
    54. // es werden die Default-Werte zurückgegeben
    55. }
    56. return settings;
    57. }
    58. }
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!