次のコードは、常に UnuthorizedAccessExceptionスローします(MemoryStreamを内部のバッファにアクセスすることはできませんが。)なぜMemoryStream.GetBuffer()は常にスローされますか?
byte[] buf1 = { 2, 3, 5, 7, 11 };
var ms = new MemoryStream(buf1);
byte[] buf2 = ms.GetBuffer(); // exception will be thrown here
これは昔ながらのコンソールアプリケーションであると私は管理者として実行していますよ。私はこのコードを与えることができるより特権的な設定を想像することはできません。だから、なぜ私はこのバッファーで取得できないのですか? (そして、もし誰もがすることができ、GetBufferメソッドのポイントは何ですか?)
MSDNのドキュメントは のMemoryStream(配列[、 のMemoryStreamを使用し、 で公開さバッファをMemoryStreamをインスタンスを作成するには
を言います]、Int32、 Int32、Boolean、Boolean)、または MemoryStream(Int32)。
私はそれをしていませんか?
P.S. ToArray()はコピーを作成するため、使用したくありません。
tanx、great point –