.NET Core 3中未触发ShouldSerialize方法

蒂埃里

我通常ShouldSerialize用来排除没有数据的属性,例如数组,但是现在,当我仅在中使用JSON序列化程序时,它似乎没有被触发.NET Core 3使用时触发了它,NewtonSoft但由于不再需要它,因此将其从项目中删除。

例如:

    private ICollection<UserDto> _users;

    public ICollection<UserDto> Users
    {
        get => this._users ?? (this._users = new HashSet<UserDto>());
        set => this._users = value;
    }

    public bool ShouldSerializeUsers()
    {
        return this._users?.Count > 0;
    }

为什么不应该触发ShouldSerializeUsers的任何想法?

我看过其他可以在其中使用的答案:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc()
        .AddJsonOptions(options => { 
        options.SerializerSettings.NullValueHandling = 
        NullValueHandling.Ignore;
    });
}

但我想知道是否还有其他方法可以处理此问题,因为我没有使用 .AddMvc

谢谢。

数据库

你之所以ShouldSerialize没有在ASP.NET 3.0的核心是触发,在此和后续版本的ASP.NET,不同的JSON序列被默认使用,即System.Text.Json.JsonSerializer看到:

不幸的是,从.NET Core 3.1开始,此序列化器不支持该ShouldSerializeXXX()模式。如果这样做的话,它应该在某处JsonSerializer.Write.HandleObject.cs-但事实并非如此。下列问题跟踪对条件序列化的请求:

要恢复ShouldSerialize功能,可以恢复到如图使用Newtonsoft这个答案哪里IMvcBuilder AddJsonOptions在.net核心3.0去?通过poke,还添加了基于Newtonsoft.Json的JSON格式支持

  1. 安装Microsoft.AspNetCore.Mvc.NewtonsoftJson
  2. 然后调用AddNewtonsoftJson()Startup.ConfigureServices

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllers()
            .AddNewtonsoftJson();
    }
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

.NET Core中的SOAP?

来自分类Dev

.NET Core中的Ninject

来自分类Dev

.NET Core中的Computehash方法

来自分类Dev

.Net Core API方法未调用

来自分类Dev

MVC .NET Core - 调用方法

来自分类Dev

.NET CORE 时间异步方法

来自分类Dev

在.NET 4.5.2中引用.NET Core库

来自分类Dev

在.Net Core中设置UserTokenProvider

来自分类Dev

.Net Core 3.0中的BrowserLink

来自分类Dev

.NET Core中的HttpClientHandler UseDefaultCredentials

来自分类Dev

.NET Core中的主键继承

来自分类Dev

.NET Core中的DI问题

来自分类Dev

.NET Core (2.0) 中的参考

来自分类Dev

.NET Core 3中的ExecuteSqlRaw参数查询

来自分类Dev

.NET Core中缺少方法异常

来自分类Dev

ASP.NET Core RequestDelegate多次触发

来自分类Dev

URL源图像未显示在.Net Core中

来自分类Dev

NET Core 3.1中未验证Azure AD

来自分类Dev

IWebHostBuilder.Configure()在ASP.NET Core中未执行

来自分类Dev

.NET Standard和.NET Core 3.x或ASP.NET Core 3.x

来自分类Dev

在ASP.NET Core WebApplicationFactory中重写EF Core DbContext

来自分类Dev

Net Core Worker Windows服务中的EF Core DBContext

来自分类Dev

.NET Core EF core中对dbcontext的并行调用

来自分类Dev

.NET Core中IQueryable中的反射

来自分类Dev

EnableCors C#.NET Core 3

来自分类Dev

.net Core 3身份'AccessFailedCount'不增加

来自分类Dev

.NET Core 3 是否支持 TLS 1.3

来自分类Dev

.net Core HttpPost方法ajax调用

来自分类Dev

ASP.NET Core 部署方法