 
      
    C#
- 7 ответов
- 0 вопросов
    1
    Вклад в тег
    
      
      
    
  
  
using System;
using System.Collections.Generic;
using System.IO;
using System.Xml.Serialization;
namespace Лямбда_Выражения
{
    class Program
    {
        static void Main(string[] args)
        {
            Data data = new Data();
            Test test = new Test();
            Question question = new Question();
            Answer answer = new Answer();
            Answer answer2 = new Answer();
            question.ТекстВопроса = "Сколько будет 2+2 ?";
            answer.ТекстОтвета = "5";
            answer.ОтветВерный = false;
            answer2.ТекстОтвета = "4";
            answer2.ОтветВерный = true;
            question.Ответы.Add(answer);
            question.Ответы.Add(answer2);
            test.Вопросы.Add(question);
            test.ДатаВремяСоздания = DateTime.Now;
            test.Название = "Тест на знание математики";
            test.Создатель = "SlNik";
            data.Тесты.Add(test);
            data.Сохранить();
            Console.ReadKey();
        }
    }
    [Serializable]
    public class Answer
    {
       public string ТекстОтвета { get; set; }
       public bool ОтветВерный { get; set; }
    }
    [Serializable]
    public class Question
    {
        public Question()
        {
            Ответы = new List<Answer>();
        }
        public string ТекстВопроса { get; set; }
        public List<Answer> Ответы { get; set; }
    }
    [Serializable]
    public class Test
    {
        public Test()
        {
            Вопросы = new List<Question>();
        }
        public string Название { get; set; }
        public string Создатель { get; set; }
        public DateTime ДатаВремяСоздания { get; set; }
        public List<Question> Вопросы { get; set; }
    }
    [Serializable]
    public class Data
    {
        public List<Test> Тесты;
        public string Patch = Path.Combine(Environment.CurrentDirectory, "Data.xml");
        public Data()
        {
            Тесты = new List<Test>();
        }
        public Data(string patch = null)
        {
            Patch = patch;
            if (Patch == null)
                Patch = Path.Combine(Environment.CurrentDirectory, "Data.xml");
            if (File.Exists(Patch))
                Загрузить(Patch);
        }
        public void Загрузить(string patch)
        {
            XmlSerializer formatter = new XmlSerializer(typeof(Data));
            using (FileStream fs = new FileStream(patch, FileMode.OpenOrCreate))
            {
                Data data = (Data)formatter.Deserialize(fs);
                Console.WriteLine("Данные с тестами загружены");
                Console.WriteLine("Кол-во тестов:{0}", data.Тесты.Count);
            }
        }
        public void Сохранить(string patch = null)
        {
            if (patch == null)
                patch = Patch;
            XmlSerializer formatter = new XmlSerializer(typeof(Data));
            using (FileStream fs = new FileStream(patch, FileMode.Create))
            {
                formatter.Serialize(fs, this);
                Console.WriteLine("Объект сериализован");
            }
        }
    }
} 
      