Salvando uma classe em um disco ao descartar: Meu código possui bugs?

Estou tentando criar uma classe simples que se serialize em disco quando não estiver mais em uso. O código que tenho agora (veja abaixo). O código que tenho agora parece funcionar, mas não tenho total confiança em meu conhecimento, portanto, estou me perguntando se mais alguém vê algum problema significativo com esse código.

void IDisposable.Dispose()
{
    Dispose(true);
    GC.SuppressFinalize(this);
}

~MyClass()
{
    Dispose(false);
}

protected virtual void Dispose(bool disposing)
{
    if (!this.disposed)
    {
        MemoryStream ms = new MemoryStream();
        BinaryFormatter bf = new BinaryFormatter();
        bf.Serialize(ms, this);
        byte[] output = Dostuff(ms);
        File.WriteAllBytes(DBPATH, output);
    }
    this.disposed = true;
}