При 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;
        }
    }

Ответы (0 шт):