Ich habe diesen Code, ich bin besorgt, dass es "nicht sicher ist" Ich habe Dispose() vor der Verwendung der Anweisung Ende, für mich ist es ein wenig unlogisch, aber es funktioniert gut. Also, ist es sicher?Was passiert, wenn ich Dispose() vor der Verwendung des Anweisungsendes aufgerufen habe?
using (FileStream stream = new FileStream(SfilePath, FileMode.Open))
{
try
{
XmlSerializer deserializer = new XmlSerializer(typeof(HighscoresViewModel));
HVM = deserializer.Deserialize(stream) as HighscoresViewModel;
}
catch (InvalidOperationException)
{
stream.Dispose();
(new FileInfo(SfilePath)).Delete();
HVM = new HighscoresViewModel();
}
}
Es wird versuchen, das Objekt zweimal zu entsorgen –
@JeroenvanLangen: das ist falsch. Siehe hwds Antwort. – siride
@siride - der 'Stream' _will_ wird zweimal entsorgt. Der einzige Fehler in Jeroen's Kommentar ist das Wort "try". –