Il seguente codice sarà sempre buttare UnuthorizedAccessException (buffer interno di MemoryStream non è possibile accedere.)Perché MemoryStream.GetBuffer() lancia sempre?
byte[] buf1 = { 2, 3, 5, 7, 11 };
var ms = new MemoryStream(buf1);
byte[] buf2 = ms.GetBuffer(); // exception will be thrown here
Questo è in una pianura vecchia console app e sto correndo come un amministratore. Non riesco a immaginare un'impostazione più privilegiata che potrei dare a questo codice. Quindi, perché non riesco a ottenere questo buffer? (E se nessuno può, qual è il punto del metodo GetBuffer?)
La documentazione MSDN dicono
per creare un'istanza MemoryStream con un buffer pubblicamente visibile, utilizzare MemoryStream, MemoryStream (array [ ], Int32, Int32, booleano, booleano) o MemoryStream (Int32).
Non lo faccio?
P.S. Non voglio usare ToArray() perché ne fa una copia.
tanx, ottimo punto –