v5.5 Elasticsearch 自定义序列化程序

v5.5 Elasticsearch Custom Serializer

是否可以在 NEST / Elasticsearch-net 5.5 中制作自定义序列化程序,使其仅适用于我自己的应用程序定义的类型,并让内置序列化程序处理其余 Elastic 包自己的类型?

我想完成此操作,因为我的自定义序列化程序无法将 Elasticsearch NEST 查询序列化为 json 字符串。

可以使用 5.x 定义您自己的 JSON.NET 序列化程序,它将正确序列化 NEST 类型,并根据您的喜好序列化您自己的类型。然而,这并不是那么简单,这就是为什么 JSON.NET 被内化到 NEST 6.x :) 如果你不使用 Json.NET,你需要做更多的工作来实现你自己的序列化器来执行此操作,因为你的序列化器还需要知道如何序列化 NEST 类型。

为了在 5.x 中工作,您的 IContractResolver 必须 以不全局影响所有类型的方式从 ElasticContractResolver to be able to inherit serialization of NEST types. The easier way to inherit however is to derive from JsonNetSerializer and implement the behaviour that you require 派生将由序列化程序处理。