Не работает сериализация объекта 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>));