System.Text. Json .JsonException: 'Обнаружен возможный цикл объекта, который не поддерживается - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь сохранить корзину покупок, содержащую Список CartLine (и каждая CartLine содержит другой Список), в ProtectedSessionStorage или LocalStorage в серверной части Blazor:

using Microsoft.AspNetCore.ProtectedBrowserStorage;
using Cloudcrate.AspNetCore.Blazor.Browser.Storage;

...
session.SetAsync("Cart", cart);
storage.SetItemAsync("Cart", cart);

Но я получаю ошибку:

System.Text. Json .JsonException : 'Обнаружен возможный цикл объекта, который не поддерживается. Это может происходить либо из-за цикла, либо из-за того, что глубина объекта превышает максимально допустимую глубину, равную 0. Я использую [JsonIgnore], чтобы вручную циклически обрабатывать списки для хранения и извлечения, JsonIgnore не работает, и я получаю ту же ошибку. Существует альфа-версия этой библиотеки json, но при поиске я ничего не нахожу. Что мне делать?

РЕДАКТИРОВАТЬ : у меня есть три класса для хранения, но самый простой из них:

 public class CultureChanger
{
    public CultureInfo Current { get; private set; } = new CultureInfo("en");

    public Action OnCultureChange;

    public void ChangeCulture(string cultureName)
    {
        Current = new CultureInfo(cultureName);
        OnCultureChange?.Invoke();
    }
}

Я вручную и кропотливо, повторяю и сохраняю вложенные классы и перечисляемые и кортежи внутри этих классов, сначала с помощью JsonIgnore, а затем вручную сохраняйте класс, но он должен быть автоматическим c, поскольку его можно настроить с помощью MaxDepth.

...