在Visual Studio的QuickWatch窗口中查看Stream的内容

jam*_*ind 5 .net visual-studio

如何在Visual Studio中的QuickWatch窗口中查看Stream的内容?

更新

根据Daniel的回答,我使用了以下代码 -

System.Text.Encoding.UTF8.GetString((byte[])stream.GetType().GetMethod("InternalGetBuffer", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(stream, null))

Dan*_*rth 5

MemoryStream当您可以做出一些假设时,您可以在不更改它的情况下查看内容:

  1. 你的流确实是一个MemoryStream
  2. 您的流仅包含字符串数据
  3. 您知道该字符串的编码,例如 UTF8 或 ASCII

如果您可以做出这些假设,则可以在“监视”窗口中使用以下代码:

System.Text.Encoding.UTF8.GetString((byte[])stream.GetType().GetMethod("InternalGetBuffer", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(stream, null))
Run Code Online (Sandbox Code Playgroud)

免责声明:
这可能会产生我没有想到的副作用,或者在某些情况下可能会引发异常,因此不要在生产代码中使用它。