【发布时间】:2010-12-11 09:33:12
【问题描述】:
下面的代码总是会抛出 UnuthorizedAccessException(无法访问 MemoryStream 的内部缓冲区。)
byte[] buf1 = { 2, 3, 5, 7, 11 };
var ms = new MemoryStream(buf1);
byte[] buf2 = ms.GetBuffer(); // exception will be thrown here
这是在一个普通的旧控制台应用程序中,我以管理员身份运行。我无法想象我可以提供此代码的更多特权设置。那么为什么我不能到达这个缓冲区呢? (如果没有人可以,GetBuffer 方法的意义何在?)
MSDN 文档说
创建一个 MemoryStream 实例 一个公开可见的缓冲区,使用 记忆流, 内存流(数组 [],Int32, Int32、布尔值、布尔值)或 内存流(Int32)。
我不这样做吗?
附:我不想使用 ToArray(),因为这会产生副本。
【问题讨论】:
标签: windows exception memorystream getbuffer