Исследование объекта XMLReader - PullRequest
2 голосов
/ 31 мая 2011

Я задал вопрос о том, как исследовать содержимое объекта XMLWriter при отладке. Я пытаюсь проверить содержимое XmlReader объекта, созданного из потока памяти аналогично тому, как указано в ответе на связанный вопрос. Но я получаю UnauthorizedAccessException с указанием MemoryStream's internal buffer cannot be accessed. Как проверить чтение XML из MemoryStream?

public PInfo(byte[] pBytes)
{   
    MemoryStream pMem  = new MemoryStream(pBytes);
    XmlReader reader = XmlReader.Create(pMem);

      //MemoryStream's internal buffer cannot be accessed.  
      string s = Encoding.UTF8.GetString(pMem.GetBuffer(), 0, (int)pMem.Position); 
      ....

}

1 Ответ

3 голосов
/ 31 мая 2011

Проверьте документы MSDN для конкретного используемого вами конструктора, MemoryStream(Byte[]). Когда вы создадите его таким образом, GetBuffer() сгенерирует это исключение, поскольку буфер фактически не виден. Вместо этого вы должны использовать этот конструктор и обязательно установить publiclyVisible в true.

...