Ошибка сериализации с Elasticsearch NEST/C#

Я использую NEST для индексации своих объектов и сталкиваюсь с ошибкой Newtonsoft при сериализации. Один из моих объектов имеет цикл самореференции. Будет ли у меня способ получить доступ к JsonSerializer и изменить способ обработки ссылок на себя без необходимости изменения исходного кода?


person Roly    schedule 29.01.2013    source источник


Ответы (2)


Вы можете зарегистрировать пользовательские конвертеры на своем клиенте:

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

Это может помочь.

Однако нет прямого способа изменить JsonSerializerSettings, используемый в клиенте.

person Martijn Laarman    schedule 30.01.2013
comment
Если я разветвлю проект и сделаю JsonSerializerSettings свойством с общедоступным геттером, вы его вытащите? - person Roly; 30.01.2013
comment
Я сделаю это, я мог бы посмотреть на то, чтобы выставить материал Json в более единообразном виде, чтобы можно было использовать другие сериализаторы, но пока это устранит зуд, поэтому я потяну :) - person Martijn Laarman; 30.01.2013

Теперь есть новый API, взгляните на:

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

Спасибо за добавление поддержки!

person Mikl X    schedule 26.07.2014