У меня интересная ситуация, когда elasti c v7 default utf8 json сумел сериализовать мой объект, но не смог правильно десериализовать его.
public class MyClass : FlagsSet
{
[JsonIgnore]
public bool IsActive
{
get
{
return this.IsSet("active");
}
}
}
public class FlagsSet : ICollection<string>, IEnumerable<string>, IEnumerable
{
private readonly HashSet<string> _list = new HashSet<string>((IEqualityComparer<string>) StringComparer.InvariantCultureIgnoreCase);
...
public void Add(string item)
{
if (string.IsNullOrEmpty(item))
return;
this._list.Add(item);
}
}
Если бы я был используя json. net Я бы справился с этим, написав конвертер, но я не могу увидеть эквивалент, используя utf8 json, поскольку, похоже, форматеры, используемые сериализатором по умолчанию (DefaultHighLevelSerializer), все зарегистрированы внутри . Я прочитал несколько страниц о сериализаторах клиентов (в частности, этот .. https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/custom-serialization.html)
Короче говоря ...
- Возможно ли зарегистрировать пользовательский форматировщик utf8 json (т.е. аналогичный поддерживаемому конвертеру json. net)? И если да, можете ли вы указать мне пример, пожалуйста?
- В качестве альтернативы, если это невозможно, есть ли способ заставить десериализацию utf8 json правильно работать с приведенным выше примером?