If you want a tight binary format, you could always do the serialization yourself, directly on the stream.
Writing a byte-array to a Stream:
fs.Write(data, 0, 3);
Reading a byte-array from a Stream:
byte[] data = new byte[3];<BR>
int offset = 0;<BR>
while(offset < data.Length)<BR>
offset += fs.Read(data, offset, data.Length - offset);