【问题标题】:Serialization error with Elasticsearch NEST/C#Elasticsearch NEST/C# 的序列化错误
【发布时间】:2014-07-26 08:19:32
【问题描述】:

我正在使用 NEST 来索引我的对象,并且在序列化时遇到了 Newtonsoft 错误。我的一个对象有一个自引用循环。有没有办法让我访问 JsonSerializer 并更改它处理自引用的方式而无需修改源代码?

【问题讨论】:

    标签: nest


    【解决方案1】:

    您可以在客户端上注册自定义转换器:

    public void AddConverter(JsonConverter converter)
    {
        this.IndexSerializationSettings.Converters.Add(converter);
        this.SerializationSettings.Converters.Add(converter);
    }
    

    这可能会有所帮助。

    虽然没有直接的方法来更改客户端中使用的JsonSerializerSettings

    【讨论】:

    • 如果我 fork 项目并将 JsonSerializerSettings 设置为具有公共 getter 的属性,你会拉它吗?
    • 我会的,我可能会考虑以更统一的方式公开 Json 内容,以便可以使用其他序列化程序,但现在这会抓痒,所以我会拉 :)
    【解决方案2】:

    现在有新的api了,看看:

        var cs2 = new ConnectionSettings(new Uri("http://localhost:9200"))
            .SetJsonSerializerSettingsModifier(settings => settings.TypeNameHandling = TypeNameHandling.None)
            .EnableTrace();
    

    感谢您的支持!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-23
      • 2017-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多