Изменить настройки сериализатора для Nest и Elastic Search

Я пытаюсь изменить то, как Newtonsoft обрабатывает циклы самоссылки при использовании Nest для сериализации объекта. Я использую Newtonsoft.Json 4.5.11, и я застрял в этой версии, Nest — это версия 0.11.7.0, а фрагмент кода, который я использую,

var searchBoxUri = new Uri("Url");

var elasticSettings = new ConnectionSettings(searchBoxUri)
    .SetDefaultIndex("sample");

elasticSettings.SetJsonSerializerSettingsModifier(s => {
    s.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
});

var client = new ElasticClient(elasticSettings);

client.Index(currentPage);

используя этот код, я получаю следующее исключение в трассировке стека

[JsonSerializationException: Self referencing loop detected with type 'some type'.]

Итак, почему клиент не использует настройки, которые я настроил, или я что-то здесь упускаю?


person marcus    schedule 04.11.2013    source источник
comment
Возможно, это ошибка, завтра проверим.   -  person Martijn Laarman    schedule 07.11.2013
comment
@MartijnLaarman вы исследовали проблему?   -  person marcus    schedule 09.11.2013


Ответы (1)


Это ошибка в выпуске 0.11.7.0 после серьезного рефакторинга, чтобы сделать сериализацию более компактной.

См. также https://github.com/Mpdreamz/NEST/pull/382.

Будет исправлено в 0.11.8/0

person Martijn Laarman    schedule 13.11.2013