我使用Azure函数的SignalR Service
输出绑定。当我向消息添加一些参数时,它被库Microsoft.Azure.WebJobs.Extensions.SignalRService
序列化。可以使用System.Text.Json
或Newtonsoft.Json
进行序列化。
我不知道如何为序列化提供自定义设置(我希望将枚举转换为字符串而不是数字)。
有什么办法吗?
我也尝试过序列化自己,但是库会转义所有内容以确保有效的json,这也不是很理想。
使用System.Text.Json库
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.Configure<SignalROptions>(o => o.JsonObjectSerializer = new JsonObjectSerializer(
new JsonSerializerOptions()
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
}));
}
}
Newtonsoft使用。Json库
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.Configure<SignalROptions>(o => o.JsonObjectSerializer = new NewtonsoftJsonObjectSerializer(
new JsonSerializerSettings()
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
}));
}
}
更多信息和文档可在这里获得:https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/signalr/Microsoft.Azure.WebJobs.Extensions.SignalRService/samples/Sample02_CustomizingJsonSerialization.md