Я отлаживаю приложение, которое создает PDF файлы, которые отправляются в папку, к которой у меня нет доступа. Я хочу пример одного из файлов PDF. Когда я отлаживаю, я могу проверить соответствующий объект в тот момент, когда данные для PDF хранятся в виде байтового массива.
Кажется, должно быть возможно извлечь эти двоичные данные, сохранить их в файл, называть его.pdf и просматривать. Это возможно? Я мог бы разделить приложение несколькими способами, чтобы заставить его выводить PDF в браузер, но это довольно грязно, так как логика для этого хороша довольно глубоко.
Вы можете легко добавить метод утилиты где-нибудь в вашей базе кода, которая записывает массив байтов на диск, используя класс 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, чтобы вызвать метод и передать его в pdf-байтах.
Или вы можете вызвать метод непосредственно из своего кода. Я добавил условный атрибут, поэтому метод будет вызываться только при компиляции с использованием "debug". Компилятор будет опускать вызов метода, если вы скомпилируете его с помощью профиля "release".
c:\
. В этом случае вы можете использовать Path.GetTempPath()
для записи во временный каталог. Смотрите здесь для получения дополнительной информации: dotnetperls.com/path-gettemppath