Не работает сериализация объекта Queue - C#

Узнай цену своей работы

Формулировка задачи:

Пытаюсь по примеру сохранить объект через XmlSerializer. Выдает ошибку System.InvalidOperationException
using System;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Collections.Generic;
using System.Xml.Serialization;
 
    class Program
    {
 
        static void Main(string[] args)
        {
 
            Queue <string> Q = new Queue <string>();
            string Filename = "File.txt";
            string line;
            StreamReader file =  new System.IO.StreamReader(Filename);
            while ((line = file.ReadLine()) != null)
            {
                Q.Enqueue(line); 
            }
            file.Close();
            for(;;)
            {
            Que.Menu();
            char x=Console.ReadKey().KeyChar;
            switch(x)
            {
                case '1':Console.WriteLine("Введите имя:");line=Console.ReadLine();Q.Enqueue(line);break;
                case '2':Q.Dequeue();break;
                case '3': string[] array = new string[Q.Count]; Q.CopyTo(array, 0); Que.Print(array); break;
                case 'q': Que.Serialize(Q); Environment.Exit(0); break;
                default:Console.WriteLine("Неправильный номер");break;
            }
            }
            
        }
    }
 
    static class Que
    {

        public static void Menu()
        {
            Console.WriteLine("\nВыберите действие над списком:");
            Console.WriteLine("1-Добавить элемент:");
            Console.WriteLine("2-удалить элемент из вершины:");
            Console.WriteLine("3-Печать списка:");
            Console.WriteLine("q-Выход:");
        }
 
        public static void Print(string[] Q)
        {
            for (int i = 0; i < Q.Length; i++)
            {
                Console.Write("\n|Номер:{0}\tИмя:{1} ", i, Q[i]);
            }
 
        }
 
        public static void Serialize(Queue<string> Q)
        {
            System.Xml.Serialization.XmlSerializer serialize =
            new System.Xml.Serialization.XmlSerializer(typeof(Queue<string>));
            var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "//SerializationOverview.xml";
            System.IO.FileStream file = System.IO.File.Create(path);
            serialize.Serialize(file, Q);
 
        }
    }

Решение задачи: «Не работает сериализация объекта Queue»

textual
Листинг программы
 System.Xml.Serialization.XmlSerializer serialize =
            new System.Xml.Serialization.XmlSerializer(typeof(Queue<string>));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5