C# | Не записывается в файл StreamWriter

Пытаюсь записать в файл данные, но увы не получается. Пробовал вызвать Close() в деструкторе, пишет что файл уже закрыт. В мейен вызывается только метод AddNote(). В коллекции все хорошо сохраняется. ПОдскажите, в какую сторону копать

using System.IO;
using System.Collections.Generic;

namespace Работа_с_файлом
{
    internal class DataBase
    { 
        private StreamWriter _writer;
        private StreamReader _reader;
        private string _name;

        public List<Service> Services = new List<Service>();
        
        public DataBase(string name)
        {
            _writer = new StreamWriter(new FileStream("temp.txt", FileMode.Create, FileAccess.Write));
            _reader = new StreamReader(new FileStream(name, FileMode.OpenOrCreate, FileAccess.Read));
            _name = name;
            while (true)
            {
                string line = _reader.ReadLine();

                if (line == null)
                    break;

                string[] param = line.Split(' ');
                Service temp = new Service(int.Parse(param[0]), param[1], param[2], param[3]);

                Services.Add(temp);
                _writer.WriteLine(line);
            }
            _reader.Close();
        }
        ~DataBase()
        {
            File.Delete(_name);
            File.Move("temp.txt", _name);
        }
        public void AddNote(Service note)
        {
            Services.Add(note);
            _writer.WriteLine(note.ToString());
        }
        
        public void RemoveNote(Service note)
        {
            Services.Remove(note);

            _writer.Close();
            File.Move("temp.txt", _name);
            _reader = new StreamReader(new FileStream(_name, FileMode.Open, FileAccess.Read));
            _writer = new StreamWriter(new FileStream("temp.txt", FileMode.Create, FileAccess.Write));
            
            while (true)
            {
                string line = _reader.ReadLine();

                if (line == null)
                    break;

                if (line != note.ToString())
                    _writer.WriteLine(line);
            }
            _reader.Close();
        }
        public void ChangeNote(Service source, Service changeble)
        {
            int index = Services.IndexOf(source);
            if (index != -1)
            {
                Services[index] = changeble;
            }

            _writer.Close();
            File.Move("temp.txt", _name);
            _reader = new StreamReader(new FileStream(_name, FileMode.Open, FileAccess.Read));
            _writer = new StreamWriter(new FileStream("temp.txt", FileMode.Create, FileAccess.Write));

            while (true)
            {
                string line = _reader.ReadLine();

                if (line == null)
                    break;

                if (line != source.ToString())
                    _writer.WriteLine(line);
                else
                    _writer.WriteLine(changeble.ToString());
            }
            _reader.Close();
           
        }
    }
}

Вместо деструктора определил метод Close() и там закрыл файл, но всё же интересно, в какой момент _writer успел закрыться или не закрыться вовсе


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