You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Azure Function的SignalR Payload以驼峰式(camelCase)格式传输

解决方案

要让SignalR广播的Payload自动转为驼峰式(camelCase)格式,无需手动给对象属性添加[JsonProperty]特性,你可以通过配置全局JSON序列化策略来实现,具体步骤分两种运行模型说明:

1. 适用于In-Process运行模型

如果你的Azure Function使用的是In-Process模型,创建一个Startup类来注入并配置全局JSON序列化规则:

using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using System.Text.Json;

[assembly: FunctionsStartup(typeof(YourFunctionProjectNamespace.Startup))]
namespace YourFunctionProjectNamespace
{
    public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {
            // 配置全局JSON序列化选项,启用驼峰命名
            builder.Services.Configure<JsonSerializerOptions>(options =>
            {
                options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
                // 可选:可添加其他序列化配置,比如忽略null值
                // options.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
            });
        }
    }
}

配置完成后,你的原有函数代码不需要做任何修改——全局配置会自动应用到SignalR输出绑定的序列化流程中。当signalRMessages.AddAsync执行时,message对象的属性会自动被转换为驼峰式命名后广播给客户端。

2. 适用于Isolated Worker运行模型

如果你的Function使用的是隔离进程模型,需要在Program.cs中配置序列化选项:

using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System.Text.Json;

var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults(builder =>
    {
        // 配置Worker的JSON序列化规则
        builder.Services.Configure<JsonSerializerOptions>(options =>
        {
            options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
        });
    })
    .Build();

host.Run();

原理说明

Azure Functions的SignalR输出绑定会复用全局注册的JsonSerializerOptions来序列化消息参数。通过设置PropertyNamingPolicy = JsonNamingPolicy.CamelCase,我们让所有JSON序列化操作(包括SignalR消息的序列化)自动将帕斯卡式属性名转换为驼峰式,彻底避免了手动标注特性的繁琐操作。


内容的提问来源于stack exchange,提问作者Arash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:59:30