El siguiente código siempre será tirar UnuthorizedAccessException (buffer interno de MemoryStream no se puede acceder.)¿Por qué MemoryStream.GetBuffer() siempre tira?
byte[] buf1 = { 2, 3, 5, 7, 11 };
var ms = new MemoryStream(buf1);
byte[] buf2 = ms.GetBuffer(); // exception will be thrown here
Se trata de una aplicación de consola simple y llano y estoy funcionando como administrador. No puedo imaginar un entorno más privilegiado en el que pueda dar este código. Entonces, ¿por qué no puedo llegar a este buffer? (Y si nadie puede, ¿cuál es el punto del método GetBuffer?)
La documentación de MSDN dicen
para crear una instancia MemoryStream con un búfer visible para el público, utilizar MemoryStream, MemoryStream (array [ ], Int32, Int32, Boolean, Boolean) o MemoryStream (Int32).
¿No estoy haciendo eso?
P.S. No quiero usar ToArray() porque eso hace una copia.
tanx, great point –