.net - 在 Visual Studio 快速观察窗口中查看流的内容

标签 .net visual-studio

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

更新

根据丹尼尔的回答,我使用了以下代码 -
System.Text.Encoding.UTF8.GetString((byte[])stream.GetType().GetMethod("InternalGetBuffer", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(stream, null))

最佳答案

您可以查看MemoryStream的内容当您可以做出一些假设时,无需更改它:

  • 您的流确实是 MemoryStream
  • 您的流仅包含字符串数据
  • 您知道该字符串的编码,例如UTF8 或 ASCII

  • 如果您可以做出这些假设,则可以在 Watch 窗口中使用以下代码:
    System.Text.Encoding.UTF8.GetString((byte[])stream.GetType().GetMethod("InternalGetBuffer", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(stream, null))
    
    免责声明:
    这可能会产生我没有想到的副作用,或者在某些情况下可能会引发异常,所以不要在生产代码中使用它。

    关于.net - 在 Visual Studio 快速观察窗口中查看流的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7755312/

    相关文章:

    asp.net - 在ASP.NET MVC 5 Controller 方法中调试多个线程

    asp.net - VS 2011 中 Web 部署项目的替代方案

    asp.net - .Net Full 框架和 K 运行时使用的 .Net Core Framework 4.5 之间的区别?

    c# - 为什么 FindSystemTimeZoneById 找不到 GetSystemTimeZones 返回的某些时区?

    c# - 在 propertygrid 中填充 JSON

    c# - 如何在没有 visual studio 的情况下将新文件添加到 .csproj 文件

    c# - 如何设置 Bing map 样式?

    c - 在 Visual Studio 2013 中调用 malloc 时 64 位编译器生成的奇怪代码

    c# - Visual Studio 分析 : Start/Stop from code

    c++ - 如何将 Tesseract 链接到 VS 2019 中的 C++ 项目?