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?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage