Сириализация WPF MVVM

Рейтинг: 0Ответов: 0Опубликовано: 17.03.2023

Помогите! Нужно при нажатии на кнопку сериализовать коллекцию данных. Использовал Newtonsoft, однако из-за свойства Parent появляется циклическая ошибка. Ещё кроме этого не работает команда десериализации файла в котором есть данные. Код объекта Item:

    public class Item
{
    public string Name { get; set; }

    public string Description { get; set; }

    [JsonIgnore]
    public Item? Parent { get; set; }

    public DateTime timeCreate = DateTime.Now;

    public ObservableCollection<Item> Childs { get; set; }
}

Код команд:

    public string filePath = "file.json";
    public ObservableCollection<Item> Items { get; set; }

    public ICommand SerializeCollectionCommand { get; }

    private bool CanSerializeCollectionCommandExecute(object p) => Items != null;

    private void OnSerializeCollectionCommandExecuted(object p)
    {
        string json = JsonConvert.SerializeObject(Items);
        File.WriteAllText(filePath, json);
    }

    public ICommand DeserializeCollectionCommand { get; }

    private bool CanDeserializeCollectionCommandExecute(object p) => true;

    private void OnDeserializeCollectionCommandExecuted(object p)
    {
        var json = File.ReadAllText(filePath);
        Items = JsonConvert.DeserializeObject<ObservableCollection<Item>>(json);
    }

Может есть какие-то альтернативы или можно сделать проще, предложите, а то сам новичок.

Ответы

Ответов пока нет.