c# - 如何在 Azure Functions 中使用 IAsyncCollector 和 System.Text.Json 设置驼峰式大小写?

标签 c# serialization azure-functions azureservicebus system.text.json

我正在将 Azure Functions v3 从 Newtonsoft.Json 迁移到 System.Text.Json 并尝试让 camelCase 在全局范围内工作。

对于这些:

  • 信号R
  • 服务总线输出绑定(bind)
  • 宇宙数据库

我能够显式传递 JsonSerializerOptions 或全局设置它 (SignalR),但我无法为 IAsyncCollector 这样做。

这是我的代码:

[FunctionName(nameof(SampleFunction))]
public async Task Run(
    [ServiceBusTrigger(ServiceBusQueue.QueueA)] string json,
    [ServiceBus(ServiceBusQueue.QueueB)] IAsyncCollector<Delivery> queueB,
    [ServiceBus(ServiceBusQueue.QueueC)] IAsyncCollector<Driver> queueC,
    ExecutionContext context)
{
        // ... do some work

        await queueB.AddAsync(objectB).ConfigureAwait(false);

        // ... do some more work

        await queueC.AddAsync(objectC).ConfigureAwait(false);
}

objectBobjectC 最终出现在服务总线中,而不是驼峰式大小写。作为解决方法,我在接收函数上将属性名称设置为不区分大小写。

PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
PropertyNameCaseInsensitive = true

知道如何让 IAsyncCollector 以驼峰式大小写序列化吗?

最佳答案

我建议根本不要使用 IAsyncCollectorIAsyncCollector 的提供程序没有很多配置旋钮:

  • 序列化
  • 批处理
  • 重试
  • 错误处理

此外,一些实现在发布之间更改了这些实现细节,但没有发出警告。出于这些原因,我建议不要使用 IAsyncCollector,而是直接使用 API,您可以完全控制所有这些方面。 IAsyncCollector 是一个很好的抽象,但正是这种抽象性质最终使其不适合。

关于c# - 如何在 Azure Functions 中使用 IAsyncCollector 和 System.Text.Json 设置驼峰式大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66637657/

相关文章:

azure - azure 函数和 azure 静态 Web 应用程序之间的区别?怎么运行的?

azure-functions - Visual Studio 在哪里自动安装用于本地调试的 Azure Functions CLI(核心工具)?

c# - WPF 数据绑定(bind)的新手

PHP unserialize() 偏移处错误

C#,查找控件

java - 为什么我在反序列化保存的对象时遇到 EOF 异常

c# - 向后兼容的 XML 反序列化

azure - 检索 Azure Function 中 HTTP Hook 中使用的函数键名称

c# - 导航期间出现 RaiseCanExecuteChanged COM 异常?

c# - 如何在 hostgator Linux 共享主机上安装 ASP.NET Core 应用程序?