Я пытаюсь написать функцию Azure v2, используя ядро dotnet как часть долговременной функции. Я хочу создать функцию активности, которая читает файл из хранилища BLOB-объектов, расшифровывает его и возвращает расшифрованный поток байтов. Я могу создать расшифрованный поток, и я пытаюсь вернуть поток следующим образом:
[FunctionName("Decrypt")]
public static async Task<IActionResult> Run(
[ActivityTrigger] string blobName,
ILogger log,
ExecutionContext context)
{
// get stream from blob storage
var bytes = await GetDecryptedByteArrayAsync(blobStream);
return new FileContentResult(bytes, "application/octet-stream");
}
Это похоже на работу, но когда я пытаюсь прочитать ответ, как это:
var provisioningArchive = await
ctx.CallActivityAsync<FileContentResult>("Decrypt", encryptedBlobName);
Я получаю следующее исключение:
Newtonsoft.Json.JsonSerializationException: невозможно найти конструктор для использования для типа Microsoft.AspNetCore.Mvc.FileContentResult. Класс должен иметь конструктор по умолчанию, один конструктор с аргументами или конструктор, помеченный JsonConstructor
Как я могу получить это для десериализации в объект, который представляет поток?