Selbstschließender StreamWriter-Singleton
Ich habe versucht, das Problem in @ weiter einzugrenzeFlush StreamWriter am Ende seiner Lebensdauer Implementierung eines Singleton-ähnlichen Self-ClosingStreamWriter
:
class Foo : System.IO.StreamWriter
{
private static readonly Foo instance = new Foo( "D:/tmp/test" );
private Foo( string path )
: base( path )
{
}
~Foo()
{
this.Close();
}
public static Foo Instance
{
get
{
return instance;
}
}
}
er beabsichtigte Effekt ist, dass in einem Beispielprogramm wie
class Program
{
private static void Main( string[] args )
{
Foo.Instance.Write( "asdf\n" );
}
}
der Garbage Collector verursacht die Instanz vonFoo
geschlossen werden
Das funktioniert nich. Anscheinend ist dasStreamWriter
ist schon weg wennFoo
Destruktor läuft, und ich bekomme einSystem.ObjectDisposedException
.
Wie rufe ich @ Close()
in geeigneter Weise im Stream zu sehen und Datenverlust zu verhindern?