Я пытаюсь сохранить корзину покупок, содержащую Список 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.