一部のデータをストリームにシリアル化する API に Stream オブジェクトを渡す必要があります。データの量は事前にわかりませんし、そのコードを制御することもできません。ただし、ストリームサイズを特定の数に制限したいと考えています。その長さが指定された制限に達したときに、MemoryStream に例外をスローさせることはできますか? このようなもの:
var stream = new MemoryStream(...); // I want to specify MaxLength=10 somehow...
for (byte i = 0; i < 9; i++)
stream.WriteByte(i); // ok
stream.WriteByte(10); // this should throw
この動作を実現する 1 つの方法は、SetLength、Seek、Write、および WriteByte メソッド (他に何かありますか?) をオーバーライドすることです。
これを行うためのより簡単またはより良い方法はありますか?既存のコンストラクターまたはプロパティが不足していませんか?