При JsonSerializer.Deserialize поле становиться null
Сериализую данный класс
public class Test
{
public Test(string name, ObservableCollection<Question> questions)
{
Name = name;
Questions = questions;
createTestDate = DateTime.Now;
}
public Test()
{
createTestDate = DateTime.Now;
}
public ObservableCollection<Question> Questions { get; set; }
= new ObservableCollection<Question>();
private int timerValue;
public int TimerValue
{
get => timerValue;
private set => timerValue = value;
}
private DateTime createTestDate;
public DateTime CreateTestDate
{
get => createTestDate;
private set => createTestDate = value;
}
private string name;
public string Name
{
get => name;
set => name = value;
}
private string pathFile;
public string PathFile
{
get => pathFile;
set => pathFile = value;
}
}
Класс Question внутри коллекции Questions
public class Question : ObservableCollection<IItem>
{
private string questionName;
public string QuestionName
{
get => questionName;
set => questionName = value;
}
public Question(IEnumerable<IItem> items) : base(items) { }
public Question() { }
}
Поле QuestionName после десериализации становиться null.
Класс отвечающий за десериализацию и сериализацию
public interface IFileService
{
Test Open(string filename);
void Save(Test test);
void DeleteFile(string path);
IEnumerable<Test> OpenFileDirectory(string folderPath,string fileExtension);
}
public class JsonFormatterService : IFileService
{
public void DeleteFile(string path)
{
File.Delete(path);
}
public Test Open(string filename)
{
using (FileStream fs = new FileStream(filename, FileMode.OpenOrCreate))
{
return JsonSerializer.Deserialize<Test>(fs);
}
}
async public void Save(Test test)
{
using (FileStream fs = new FileStream(test.PathFile, FileMode.OpenOrCreate))
{
await JsonSerializer.SerializeAsync(fs, test);
}
}
public IEnumerable<Test> OpenFileDirectory(string folderPath, string fileExtension)
{
List<Test> result = new List<Test>();
var filesPath = Directory.GetFiles(folderPath, fileExtension);
foreach (var file in filesPath)
{
result.Add(Open(file));
}
return result;
}
}