从 System.Text.Json 反序列化 NodaTime Instant

Deserializing NodaTime Instant from System.Text.Json

我在 ASP.NET 核心项目和包含两个 Instant 属性的模型中使用 Noda Time。

public class Template
{
    //... redacted bits

    public Instant CreateDt { get; set; }
    public Instant LastmodDt { get; set; }
}

数据库中的信息如我所料“开箱即用”。但是 通过 API returns 空对象属性取回 值,如下所示:

{
    //... redacted bits

    "createDt": {},
    "lastmodDt": {}
}

如何取回我输入的同一日期,或者至少可以输入一些数据?

FWIW 我正在使用 ASP.NET Core 3.1,默认为 System.Text.Json(不是 JSON.NET)。

编辑:删除了与问题无关的关于 PostgreSQL 的虚假注释。

通过安装 NodaTime.Serialization.SystemTextJson 软件包并将其添加到我的 Startup.cs:

,我可以通过评论中提到的帮助解决此问题
services.AddControllers()
    // the added bit:
    .AddJsonOptions(opt => opt.JsonSerializerOptions.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb));

我不得不从 github 上发现的其他用途中 reverse-engineer 这个,因为我一直在看错误版本的 NodaTime 用户指南,就像一个傻瓜。干杯。