Laden...

XML Datenexport aus eigener Daten Klasse

Erstellt von Zerstreute vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.086 Views
Z
Zerstreute Themenstarter:in
7 Beiträge seit 2017
vor 6 Jahren
XML Datenexport aus eigener Daten Klasse

Hallo Leute,

ich arbeite gerade an einem kleinen Prüfprogramm um bestimmte Prozesse bei mir zu vereinfachen.
Ich habe dabei innerhalb des Codes eine Datenklasse angelegt welche im Programmverlauf als Array verwendet wird.

Sprich aktuell sieht es bei mir so aus ..


Class Datablock
{
            string Path = @"d:\bin";
            public string Name;
            public string LANMode;
            public bool Note;
            public string ID;
            public Byte[] USB_Remap = new byte[3] { 0x21, 0x43, 0x05 }; // Image Address 0x36-0x38
            public Byte[] USB_Config = new byte[3] { 0x9b, 0x18, 0x00 };// Image Address 0x26-0x28
}

der dann im public Class Form1 zu nem Array wird ..


  ...
Datablock[] DataList = new Datablock[17];
...

nun möchte ich dieses Array gern in eine XML Datei exportieren. Am besten so das ich die einzelnen Datenfelder nicht im Programcode halten muß, sondern beim Start aus der XML lade.
Dabei sollte natürlich zu jedem Arrayeintrag alle Parameter ins XML übergeben werden.

Leider werde ich hierzu nicht wirklich fündig bei Google , also hoffe ich das Ihr mir hier weiter helfen könnt. Dieser ganze XML Bereich ist komplettes Neuland und irgendwie steig ich da noch nicht so richtig durch.

Bei Unklarheiten bitte ruhig nachfragen..

Danke schonma vorweg ..

3.003 Beiträge seit 2006
vor 6 Jahren

Zuerst mal: mir rollen sich die Fußnägel hoch, wenn ich deine Klasse sehe. Wenn ein Bewerber sowas machen würde, wäre das Gespräch direkt beendet.

Zweitens: dass du nichts gefunden hast, finde ich schon sehr merkwürdig. Das Thema ist hier im Forum und auch sonst überall recht prominent.


static void Main()
{
    var serializer = new XmlSerializer(typeof(DatablockCollection));

    using (var file = File.OpenWrite("example.xml"))
    using (var writer = XmlWriter.Create(file))
        serializer.Serialize(writer, new DatablockCollection(new [] { new Datablock(), new Datablock(), new Datablock()  }));
}

public class DatablockCollection
{
    public DatablockCollection() { }
    public DatablockCollection(Datablock[] items) => Items = items;

    public Datablock[] Items { get; set; }
}

public class Datablock
{
    private const string DEFAULT_PATH = @"d:\bin";

    [XmlElement]
    public string Path { get; set; } = DEFAULT_PATH;
    [XmlElement]
    public string Name { get; set; }
    [XmlElement]
    public string LanMode { get; set; }
    [XmlElement]
    public bool Note { get; set; }
    [XmlElement]
    public string Id { get; set; }
    [XmlElement]
    public byte[] UsbRemap { get; set; } = {0x21, 0x43, 0x05};
    [XmlElement]
    public byte[] UsbConfig { get; set; } = {0x9b, 0x18, 0x00};
}

Tu dir aber bitte einen Gefallen und geh noch einmal zurück zu den Grundlagen.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)