Danielku15
Erfahrenes Mitglied
Hallo.
Ich hab gerade ein sehr seltsames Problem. Ich will über meinen XMLSerializer mein DataSet abspeichern. Nun hab ich folgendes Problem. Ich deserialisiere mein DataSet wenn die entsprechende Datei schon existiert. Dann importiere ich die Daten, manipuliere sie und will dann wieder serialisieren. Nur mein Problem ist, ich schließe zwar beim deserialisieren den TextReader mit Close(). Jedoch bekomme ich beim serialisieren immer eine IOException dass der Zugriff verweigert sei. Aber ich schließe den Stream.
Wo kann hier der Fehler liegen?
Gruß Daniel
Ich hab gerade ein sehr seltsames Problem. Ich will über meinen XMLSerializer mein DataSet abspeichern. Nun hab ich folgendes Problem. Ich deserialisiere mein DataSet wenn die entsprechende Datei schon existiert. Dann importiere ich die Daten, manipuliere sie und will dann wieder serialisieren. Nur mein Problem ist, ich schließe zwar beim deserialisieren den TextReader mit Close(). Jedoch bekomme ich beim serialisieren immer eine IOException dass der Zugriff verweigert sei. Aber ich schließe den Stream.
Wo kann hier der Fehler liegen?
C#:
string sCache = System.IO.Path.Combine(_sPath, "MediaOrganzierCache.moc");
XmlSerializer oSerializer = new XmlSerializer(typeof(ITunesBrowserCollection));
if (File.Exists(sCache))
{
try
{
TextReader oReader = new StreamReader(sCache);
_coSongs = (ITunesBrowserCollection)oSerializer.Deserialize(oReader);
oReader.Close(); // <-- Hier wird geschlossen
bLoadFromFileSystem = false;
}
catch
{
bLoadFromFileSystem = true;
}
}
// .. Import und Manipulation
try
{
TextWriter oWriter = new StreamWriter(sCache); // <-- Hier wird die Exception geworfen
oSerializer.Serialize(oWriter, _coSongs);
oWriter.Close();
FileInfo oInfo = new FileInfo(sCache);
if (oInfo.Exists)
{
oInfo.Attributes = FileAttributes.Hidden;
}
}
catch(Exception e)
{
DialogHelper.ShowError("Fehler beim Schreiben des Caches: " + e.Message);
}
Gruß Daniel