Hallöchen.
Heute hab ich mal wieder n richtig tolles Prob:
Ich hab hier n DataSet, welches ein Image enthält. Wenn ich das Set mit "WriteXml" speichere enthält das .xml- File merkwürdigerweise das Image nicht.
Logischerweise ist das Set nach "ReadXml" dann auch leer, obwohl die Datei eigendlich das Image enthalten sollte.
tja und nu ?!?
zeig mal code?
vielleicht könnte man irgendwo ein [serializable] anfügen ?
using System;
using System.Data;
using System.Drawing;
namespace Test {
public class SetMitBild : DataSet {
public Image bild;
public SetMitBild() {
//hier steht nix
}
}
}
Im Hauptprogramm sollte das dann ungefähr so aussehen:
...
SetMitBild testset = new SetMitBild();
testset.bild = Image.FromFile("Bild.mpg");
testset.WriteXml("Test.xml");
...
Schaut man sich die "Test.xml"- Datei an, stellt man fest, dass sie leer ist.
Ich hab irgendwie das Gefühl, ich müsste das Image mehr an das Set binden, aber wie?
@cYaONE: Habs mir mal angeschaut, scheint auch zu funzen. Ich dachte nur vielleicht kann man das auch übersichtlicher lösen.
Heureka!!!
Also habs mal mitm XmlSerializer probiert. Der hat dann allerdings zur Laufzeit ne Ausnahme "Kann Ojekt nicht Reflektieren" geschmissen.
In der .NET Docu bin ich dann aber auf einen Verweis auf den BinaryFormatter gestoßen. Mit dem Klappts dann prima. Allerdings wird dann nur ne Binärdatei anstatt einer xml- Datei in den Stream geschrieben (aber damint kann ich leben)
Kannst auch den SoapFormatter benutzen. Zu finden in der Bibliothek System.Runtime.Serialization.Formatters.Soap.dll. Dieser erzeugt eine auf XML-basierende Struktur. Braucht allerdings unmengen mehr an Speicherplatz. Hat aber den Vorteil, das man die Daten händisch mit einem Texteditor bearbeiten kann.
([bb]|[^b]{2})