下面的代碼將總是拋出 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,布爾,布爾)或 MemoryStream(Int32)。
我不這樣做嗎?
P.S.我不想使用ToArray(),因爲它創建了一個副本。
坦克,好點 – 2015-09-23 07:38:36