Poniższy kod będzie zawsze rzucać UnuthorizedAccessException (bufor wewnętrzny MemoryStream nie można otworzyć.)Dlaczego funkcja MemoryStream.GetBuffer() zawsze wyrzuca?
byte[] buf1 = { 2, 3, 5, 7, 11 };
var ms = new MemoryStream(buf1);
byte[] buf2 = ms.GetBuffer(); // exception will be thrown here
Jest to zwykły starej aplikacji konsoli i używam jako administrator. Nie mogę sobie wyobrazić bardziej uprzywilejowanego ustawienia, w którym mógłbym podać ten kod. Dlaczego nie mogę uzyskać tego bufora? (I jeśli nikt nie może, co jest punktem sposobu GetBuffer?)
Docs MSDN powiedzieć
Aby utworzyć egzemplarz MemoryStream z publicznie widoczne buforowego użyciu MemoryStream, MemoryStream (tablica [ ], Int32, Int32, Boolean, Boolean) lub MemoryStream (Int32).
Czy tego nie robię?
P.S. Nie chcę używać ToArray(), ponieważ tworzy kopię.
tanx, świetny punkt –