最近我在 .NET Core 3.0 和 3.1 项目中使用了很多。升级现有的 2.2 项目和几个新的未开发项目。 我必须做的每一件事就是从使用新的 System.Text.Json
包切换回使用 Newtonsoft.Json
。
在几乎所有项目中,我实际上都尝试继续使用 System.Text.Json
,但在现有项目中,我没有时间在我的模型上切换自定义 JsonConverters
或 Newtonsoft.Json
特定属性之类的东西。
在新项目中,我总是会在 Newtonsoft
中做到这一点。 尽管我很想尝试这个闪亮的新东西,但我有自己的截止日期,这让我无法尝试新功能。
所以如果你和我在同一条船上,只需要把东西拿出来。 您需要的第一件事是安装以下 Nuget
包:
Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson
然后你需要向你的 IMVCBuilder
添加一个特定的调用。 这将根据您设置项目的方式而有所不同。 如果您要从现有项目迁移,您将调用“AddMvc()
”,然后您可以像这样添加它:
services.AddMvc().AddNewtonsoftJson();
但是,在新的 .NET Core 3+ 项目中,您有一组不同的调用来替换 MVC
。 所以你可能会有以下之一:
services.AddControllers().AddNewtonsoftJson();
services.AddControllersWithViews().AddNewtonsoftJson();
services.AddRazorPages().AddNewtonsoftJson();
如果这是一个 Web API,您可能会有 AddControllers
,但根据您的项目设置,您也可能有其他的。 将 AddNewtonsoftJson()
添加到最后意味着它将“恢复”回使用 Newtonsoft
而不是 System.Text.Json