web-dev-qa-db-ja.com

.netコア3にはAddJsonOptionsにReferenceLoopHandlingがありません

私のcsprojectファイルは次を示しています:<TargetFramework>netcoreapp3.0</TargetFramework>

私のスタートアップでは、followinhgを使用しています:

 services.AddMvc(x => x.Filters.AddService<TransactionFilter>())
        .AddJsonOptions(options => options.JsonSerializerOptions... )

ただし、ReferenceLoopHandlingはoptions.JsonSerializerOptions内では使用できません。

enter image description here

<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>
13
SexyMF

MvcNewtonsoftJsonOptions

services.PostConfigure<MvcNewtonsoftJsonOptions>(o => 
{
    o.SerializerSettings.ContractResolver = new MyCustomContractResolver()
    {
        NamingStrategy = new CamelCaseNamingStrategy()
    };

    o.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
});
0