BinaryReader の内部バッファリング戦略のため、ストリームに保存されているオフセットを読み取ってから、このオフセットでストリームを再配置してストリーミングを再開することが適切かどうかは不明です。
例として、次のコードは問題ありません。
using (var reader = new CustomBinaryReader(inputStream))
{
var offset= reader.ReadInt32();
reader.BaseStream.Seek(offset, SeekOrigin.Begin);
//Then resume reading the streaming
}
または、ストリームをシークする前に最初のバイナリ リーダーを閉じてから、2 番目のリーダーを再度開く必要がありますか?
int offset;
using (var firstReader = new CustomBinaryReader(inputStream))
{
offset= firstReader.ReadInt32();
}
inputStream.Seek(offset, SeekOrigin.Begin);
using (var secondReader = new CustomBinaryReader(inputStream))
{
//Then resume reading the streaming
}