正在调查XMLReader对象

本文关键字:对象 XMLReader 调查 | 更新日期: 2023-09-27 17:58:05

我问了一个问题,关于如何在调试时调查XMLWriter对象的内容。我正在尝试检查XmlReader对象的内容,该对象是以与链接问题的答案中给出的类似的方式从内存流创建的。但是我得到了UnauthorizedAccessException声明MemoryStream's internal buffer cannot be accessed.如何验证从MemoryStream读取的xml?

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); 
      ....
}

正在调查XMLReader对象

查看您正在使用的特定构造函数MemoryStream(Byte[])的MSDN文档。当您以这种方式实例化它时,GetBuffer()将抛出该异常,因为缓冲区实际上并不可见。您应该改为使用此构造函数,并确保将publiclyVisible设置为true