私は閉じられた MemoryStream のインスタンスを持っています (尋ねないでください、それを変更することはできません。一見するとそれほど悪いデザインではありません:)。とにかく、次のようなものを使用して byte[] を取得できることがわかりました。
MemoryStream ms = SomeClass.GetMemoryStream();
byte[] myData = ms.GetBuffer();
これまでのところすべてがうまくいっているようですが、私が抱えている唯一の問題は、GetBuffer() から返されたバイト配列のサイズが変更され、未割り当て領域 (バイト)0 が含まれていることです。そのようです:
12,32,43,43,2,3,0,0,0,0,0,0,0
私の質問は、最初の 0 に遭遇するまで配列を読み取ることができると仮定しても安全ですか? データの途中に (バイト)0 がある場合を知っていますか? データは MIME 電子メール メッセージです。