gpt4 book ai didi

c# - 如何将枚举全局序列化为字符串(而不是每个枚举中的属性)?

转载 作者:行者123 更新时间:2023-12-05 05:07:53 27 4
gpt4 key购买 nike

我正在研究 ASP.NET Core 3.0 Web API。许多端点返回带有枚举的 json。枚举未序列化为字符串,而是序列化为默认整数。

我知道 [JsonConverter(typeof(StringEnumConverter))] 属性。但我正在寻找一个解决方案,我会在全局范围内说“这个 API 返回的每个枚举都应该序列化为 string,而不需要在我的模型中的每个枚举中手动声明属性” .

直到今天,我一直在使用 .NETCore2.1。我能够通过 Newtonsoft.Json.Converters 和这个中间件实现这一点:

        services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddJsonOptions(op => { op.SerializerSettings.Converters.Add(new StringEnumConverter());});

此代码在 .NETCore3.0 中不起作用,所以我正在寻找一种解决方案,它将始终将枚举全局转换为字符串,而无需在 中更改或装饰我的模型类>NETCore3.0

感谢帮助

最佳答案

在 .NET Core 3.0 中,不再默认包含 Newtonsoft.JSON 包。

安装 following package并尝试像这样添加转换器:

services.AddMvc(...).AddNewtonsoftJson(opt => SerializerSettings.Converters.Add(new StringEnumConverter()));

关于c# - 如何将枚举全局序列化为字符串(而不是每个枚举中的属性)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58737829/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com