Erstellen eines Bytearrays aus einem Stream

Was ist die bevorzugte Methode zum Erstellen eines Byte-Arrays aus einem Eingabestream?

Hier ist meine aktuelle Lösung mit .NET 3.5.

Stream s;
byte[] b;

using (BinaryReader br = new BinaryReader(s))
{
    b = br.ReadBytes((int)s.Length);
}

Ist es immer noch eine bessere Idee, Teile des Streams zu lesen und zu schreiben?