如何修改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
相关产品推荐
相关产品推荐

