我在调试时询问了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);
....
}
答案 0 :(得分:3)
查看您正在使用的特定构造函数的MSDN文档MemoryStream(Byte[])
。当您以这种方式实例化时,GetBuffer()
将抛出该异常,因为缓冲区实际上不可见。您应该使用this constructor,并确保将publiclyVisible
设置为true
。