我可以提取我可以在调试时检查的二进制数据吗?

时间:2014-11-12 10:37:02

标签: c# .net vb.net pdf visual-studio-2013

我正在调试生成PDF的应用程序,该应用程序将被发送到我无法访问的位置。我想要一个PDF文件的例子。当我调试时,我能够在一个点上检查适当的对象,其中PDF的数据存储为字节数组。

似乎应该可以提取二进制数据,将其保存到文件中,将其称为.pdf并查看它。这可能吗?我可以通过几种不同的方式将应用程序分开,以便将PDF输出到浏览器,但这非常混乱,因为它的逻辑被深深地埋没了。

1 个答案:

答案 0 :(得分:1)

您可以在代码库中的某处轻松添加实用程序方法,使用BinaryWriter类将字节数组写入磁盘。例如:

[Conditional("DEBUG")]
public static void WriteBytesToTempFile(byte[] fileContent)
{
    var tempFileName = "c:\temp.pdf";

    if (File.Exists(tempFileName))
        File.Delete(tempFileName);

    using (var writer = new BinaryWriter(File.Open(tempFileName, FileMode.Create)))
    {
       writer.Write(fileContent);
    }
 }

当你是调试器时,你可以使用Visual Studio Immediate Window来调用方法并传入你的pdf字节。

或者您可以直接从代码中调用该方法。我添加了Conditional属性,因此只有在使用“debug”进行编译时才会调用该方法。如果使用“release”配置文件进行编译,编译器将省略方法调用。