如何解决 AddJsonOptions 不包含 SerializerSettings 的定义 - .NET

问题描述 投票:0回答:2

希望有人能帮助我,我一直在寻找,但未能找到解决方案。可能是一些基本的东西,我只是找不到解决方案。

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
                .AddJsonOptions(opt =>
                {
                    opt.SerializerSettings.ReferenceLoopHandLing = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
                });

此代码试图解决引用循环的问题。 我正在学习有关使用 .NET 和 Angular CLI 构建 Web 应用程序的教程。 在教程中,显示了我的代码中也出现的循环错误。 尝试遵循解决方案(上面的代码),我在 SerializerSettings 上收到错误,说 JsonOptions 不包含此类定义。

我尝试过:

添加[已过时](由 Visual Studio 建议),

安装 Microsoft.AspNetCore.MVC.Formatters.Json nuget 包(VS 通知它在添加时没有执行任何操作), (在 Documentation 和 Here com StackOverflow 上看到了这个解决方案)

尝试了 Newtonsoft Json.Net 文档的 ReferenceLoopHandling (我可能没有正确使用它,所以如果有人觉得这是出路,请告诉我)

提前致谢,

c# .net angular serialization
2个回答
26
投票

解决了。

services.AddMvc().AddNewtonsoftJson(o => 
{
    o.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
});   

希望这有帮助。

NuGet:Microsoft.AspNetCore.Mvc.NewtonsoftJson


0
投票

在此链接中: https://learn.microsoft.com/es-es/dotnet/standard/serialization/system-text-json/migrate-from-newtonsoft?pivots=dotnet-6-0

微软文档说在.Net 6.0中具有相同行为的选项是 服务 .AddMvc() .AddJsonOptions( 选项=> options.JsonSerializerOptions.ReferenceHandler = System.Text.Json.Serialization.ReferenceHandler.IgnoreCycles);

© www.soinside.com 2019 - 2024. All rights reserved.