调查XMLReader对象

时间:2011-05-31 05:53:30

标签: c# xml xmlreader

我在调试时询问了question如何调查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); 
      ....

}

1 个答案:

答案 0 :(得分:3)

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