Следующий код всегда будет бросать 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, отличная точка –