在NEST / Elasticsearch-net 5.5中是否可以使自定义序列化程序仅对我自己的应用程序定义的类型起作用,并让内置的序列化程序处理其余的Elastic软件包自己的类型?
我想完成此操作,因为我的自定义序列化程序无法将Elasticsearch NEST查询序列化为json字符串。
答案 0 :(得分:1)
可以用5.x定义自己的JSON.NET序列化程序,该序列化程序可以正确地序列化NEST类型,并根据需要对序列化自己的类型进行序列化。但是,这样做并不是那么简单,这就是为什么JSON.NET在NEST 6.x中被内部化的原因:)如果您不使用Json.NET,则需要在实现自己的序列化程序方面做更多的工作,因为您的序列化程序还需要知道如何序列化NEST类型。
要在5.x中运行此功能,您的IContractResolver
必须必须来自ElasticContractResolver
,才能继承NEST类型的序列化。但是,更简单的继承方式是derive from JsonNetSerializer
and implement the behaviour that you require,这种方式不会全局影响序列化程序将处理的所有类型。