json - .net core 3 在 AddJsonOptions 中没有 ReferenceLoopHandling
问题描述
我的 csproject 文件显示:<TargetFramework>netcoreapp3.0</TargetFramework>
在我的启动中,我使用以下内容:
services.AddMvc(x => x.Filters.AddService<TransactionFilter>())
.AddJsonOptions(options => options.JsonSerializerOptions... )
但是, ReferenceLoopHandling 在内部不可用options.JsonSerializerOptions
。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="FluentNHibernate" Version="2.1.2" />
<PackageReference Include="FullContact.Contacts.API" Version="1.0.3" />
<PackageReference Include="Google.Cloud.Storage.V1" Version="2.3.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Cors" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Formatters.Json" Version="2.2.0" />
<PackageReference Include="Microsoft.IdentityModel.Tokens" Version="5.5.0" />
<PackageReference Include="MySql.Data" Version="8.0.17" />
<PackageReference Include="piplclient" Version="5.0.9" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="5.5.0" />
</ItemGroup>
</Project>
解决方案
作为改进 ASP.NET Core 共享框架工作的一部分,Json.NET已从 ASP.NET Core 共享框架中删除。如果您的应用使用 Newtonsoft.Json 特定功能(例如 JsonPatch 或转换器),或者如果它格式化Newtonsoft.Json 特定类型,则您的应用可能需要此参考。
要在 ASP.NET Core 3.0 项目中使用 Json.NET:
添加对Microsoft.AspNetCore.Mvc.NewtonsoftJson的包引用。
更新Startup.ConfigureServices
调用AddNewtonsoftJson
。
services.AddMvc()
.AddNewtonsoftJson();
这将设置 MVC 并将其配置为使用 Json.NET 而不是新的 API。AddNewtonsoftJson 方法有一个重载,允许您像在 ASP.NET Core 2.x 中使用 AddJsonOptions 一样配置 Json.NET 选项。
services.AddMvc()
.AddNewtonsoftJson(options =>
{
options.SerializerSettings = new JsonSerializerSettings() { … };
});
参考:
推荐阅读
- ios - iOS:TableView 单元格内的 TableView 不滚动
- javascript - useEffect 中的 React API 调用仅在参数被硬编码时运行,而不是在使用状态时运行
- node.js - 如何将 Angular / Node.js 应用程序复制到另一台计算机
- reactjs - 使用 styled-components 时没有重载匹配此调用
- bash - Bash 脚本在后台
- sql - 识别分区后具有不同值的记录
- python - 使用 Python 解密使用 PHP 加密的密文
- notifications - 在 APEX/Salesforce 中使用 PATCH Method /connect/notifications 更新通知状态
- html - 如何查看在没有 GUI 的 Ubuntu 服务器上创建的仪表板应用程序(gcp 中的 VM 实例)
- three.js - 在three.js中,如何为网格创建偏移(厚度)?