Следующий код всегда будет бросать 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 с общедоступный буфер, используйте MemoryStream, MemoryStream (массив [], Int32, Int32, Boolean, Boolean) или MemoryStream (Int32).
Неужели я этого не делаю?
P.S. Я не хочу использовать ToArray(), потому что это делает копию.