gpt4 book ai didi

c# - 设置 JsonConvert.DefaultSettings asp net core 2.0 无法按预期工作

转载 作者:太空狗 更新时间:2023-10-29 20:56:08 25 4
gpt4 key购买 nike

我在 Startup.cs 中有以下代码并期望它覆盖默认序列化选项。我希望它覆盖我的 asp net core 2.0 项目中的每一个序列化,但操作返回值不正确,我认为这个全局属性在 core 2.0 中不起作用

我在 app.UseMvc() 之前将它写在 Configure 中;

JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
Formatting = Formatting.Indented,
TypeNameHandling = TypeNameHandling.Objects,
ContractResolver = new CamelCasePropertyNamesContractResolver(),
Converters = new List<JsonConverter> { new StringEnumConverter() }
};

最佳答案

在 ASP.NET Core 中,这是在连接应用程序服务时配置的 Startup.ConfigureServices .有流利的AddJsonOptions(Action<MvcJsonOptions>)扩展到 IMvcBuilderAddMvc() 返回延期。 MvcJsonOptions公开一个 SerializerSettings您可以在操作代码中配置的属性。

因此,不是在注册 MVC 之前配置一次,而是作为 MVC 注册的一部分完成。

包含您的设置的示例:

services.AddMvc()
.AddJsonOptions( options =>
{
options.SerializerSettings.Formatting = Formatting.Indented;
options.SerializerSettings.TypeNameHandling = TypeNameHandling.Objects;
options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
options.SerializerSettings.Converters.Add(new StringEnumConverter());
});

关于c# - 设置 JsonConvert.DefaultSettings asp net core 2.0 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46360651/

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