【发布时间】:2020-03-03 09:22:16
【问题描述】:
我正在开发 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 中的模型类。
感谢您的帮助
【问题讨论】:
-
关于类似问题还有另一个很好的答案:stackoverflow.com/questions/59096102/…
标签: c# asp.net-web-api .net-core asp.net-core-webapi asp.net-core-3.0