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

如何修改Azure Durable Functions状态返回Output属性的帕斯卡命名为驼峰命名

修改Azure Durable Functions Output属性命名规则的方案

进程内(In-Process)函数模型

  • 实现自定义序列化配置工厂,替换Durable Functions默认的序列化规则:
using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Azure.WebJobs.Extensions.DurableTask;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;

[assembly: FunctionsStartup(typeof(YourProjectNamespace.Startup))]
namespace YourProjectNamespace
{
    public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {
            // 注入自定义的序列化配置工厂
            builder.Services.AddSingleton<IMessageSerializerSettingsFactory, CamelCaseSerializerFactory>();
        }
    }

    internal class CamelCaseSerializerFactory : IMessageSerializerSettingsFactory
    {
        public JsonSerializerSettings CreateJsonSerializerSettings()
        {
            return new JsonSerializerSettings
            {
                // 配置驼峰命名规则
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
        }
    }
}

该配置会全局生效,所有Durable Functions返回的序列化内容都会自动转为驼峰命名格式。

隔离进程(Isolated Worker)函数模型

  • 在Program.cs中配置系统级JSON序列化规则即可:
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Hosting;
using System.Text.Json;

var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults(builder =>
    {
        builder.Services.Configure<JsonSerializerOptions>(options =>
        {
            options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
        });
    })
    .Build();

host.Run();

注意事项

  • 如果仅需要调整单个编排的输出格式,可在编排函数返回结果前手动对返回对象做命名转换,无需修改全局配置。
  • 全局配置生效后,CreateCheckStatusResponse返回的所有自定义字段都会遵循驼峰命名,与其他.NET Core接口的返回格式保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:45:01