Đoạn mã dưới đây sẽ luôn luôn ném UnuthorizedAccessException (đệm nội MemoryStream không thể được truy cập.)Tại sao MemoryStream.GetBuffer() luôn ném?
byte[] buf1 = { 2, 3, 5, 7, 11 };
var ms = new MemoryStream(buf1);
byte[] buf2 = ms.GetBuffer(); // exception will be thrown here
Đây là trong một ứng dụng giao diện điều khiển cũ đồng bằng và tôi đang chạy như một admin. Tôi không thể tưởng tượng ra một thiết lập đặc quyền hơn tôi có thể đưa ra mã này. Vậy tại sao tôi không thể lấy bộ đệm này? (Và nếu không ai có thể, điểm của phương pháp GetBuffer là gì?)
Các tài liệu MSDN nói
Để tạo một đối tượng với một bộ đệm hiển thị công khai MemoryStream, sử dụng MemoryStream, MemoryStream (array [ ], Int32, Int32, Boolean, Boolean) hoặc MemoryStream (Int32).
Tôi không làm điều đó?
P.S. Tôi không muốn sử dụng ToArray() vì nó tạo một bản sao.
tanx, điểm tuyệt vời –