Сириализация WPF MVVM
Помогите! Нужно при нажатии на кнопку сериализовать коллекцию данных. Использовал 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);
}
Может есть какие-то альтернативы или можно сделать проще, предложите, а то сам новичок.
Источник: Stack Overflow на русском