- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚将 ASP Web API 项目从 .Net core 2.0
升级到 3.0
。我正在使用
services.AddMvc()
.AddJsonOptions(options =>options.SerializerSettings.ContractResolver
= new DefaultContractResolver());
之前是为了确保序列化 JSON 的小写。
升级到 3.0 后,我收到此错误:
Error CS1061 'IMvcBuilder' does not contain a definition for 'AddJsonOptions' and no accessible extension method 'AddJsonOptions' accepting a first argument of type 'IMvcBuilder' could be found (are you missing a using directive or an assembly reference?)
根据AddJsonOptions for MvcJsonOptions in Asp.Net Core 2.2 AddJsonOptions 扩展方法由 Microsoft.AspNetCore.Mvc.Formatters.Json nuget 包提供。我已尝试安装/重新安装此方法,但仍然无法解决该方法。有趣的是,当我尝试添加 using 语句时,智能感知仅显示 Microsoft.AspNetCore.Mvc.Formatters.Xml,即使我添加了 Json nuget 包。
有什么想法吗? documentation for AddJsonOptions 仅适用于 .Net 2.2,因此该方法可能已在 3.0 中被弃用,转而采用其他配置机制?
最佳答案
作为 ASP.NET Core 3.0 的一部分,团队不再默认包含 Json.NET。您可以在 announcement on breaking changes to Microsoft.AspNetCore.App 中阅读更多相关信息。 .
ASP.NET Core 3.0 和 .NET Core 3.0 包含不同的 JSON API,而不是 Json.NET,该 API 更注重性能。您可以在announcement about “The future of JSON in .NET Core 3.0”中了解更多信息。 .
ASP.NET Core 的新模板将不再与 Json.NET 捆绑在一起,但您可以轻松地重新配置项目以使用它而不是新的 JSON 库。这对于与旧项目的兼容性很重要,而且因为新库不应完全替代,因此您不会在那里看到完整的功能集。
为了使用 Json.NET 重新配置 ASP.NET Core 3.0 项目,您需要添加对 Microsoft.AspNetCore.Mvc.NewtonsoftJson
的 NuGet 引用,该包包含所有必要的位。然后,在 Startup 的 ConfigureServices
中,您需要像这样配置 MVC:
services.AddControllers()
.AddNewtonsoftJson();
这会设置 MVC Controller 并将其配置为使用 Json.NET 而不是新的 API。您还可以使用不同的 MVC 重载(例如,具有 View 或 Razor 页面的 Controller )来代替 Controller 。该 AddNewtonsoftJson
方法有一个重载,允许您像在 ASP.NET Core 2.x 中使用 AddJsonOptions
一样配置 Json.NET 选项。
services.AddControllers()
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
});
关于c# - IMvcBuilder AddJsonOptions 在.Net Core 3.0 中去了哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55666826/
我刚刚将 ASP Web API 项目从 .Net core 2.0 升级到 3.0。我正在使用 services.AddMvc() .AddJsonOptions
我有最新的 .Net Core v2.1.4。 我尝试在 Startup.cs 文件中添加 AddXmlDataContractSerializerFormatters(); 但它报告 IMvcBui
我是一名优秀的程序员,十分优秀!