XML сериализация и ошибка "Класс недоступен в силу его уровня защиты" - C#
Формулировка задачи:
Доброго времени суток. Пишу XML сериализацию и сталкнулся с проблемой. Для того, чтобы объяснить суть создал маленький проект.
Class2
Class1
Program
Ошибка Смысл в том, что мне нужно сохранить именно List<Class1>. Что именно я делаю не так?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Serial
{
class Class2 : Class1
{
public Class2()
{
}
public override List<char> Data
{
get { return L; }
set { L = value; }
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Serial
{
abstract class Class1
{
protected List<char> L = new List<char>();
public Class1()
{
L.Add('a');
L.Add('c');
L.Add('a');
}
abstract public List<char> Data
{
get;
set;
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Collections;
using System.Xml.Serialization;
namespace Serial
{
class Program
{
static void Main(string[] args)
{
short a;
List<Class1> obj= new List<Class1>();
obj.Add(new Class2());
string FileName = "data.xml";
a = short.Parse(Console.ReadLine());
if (a == 1)
{
XmlSerializer mySerializer = new XmlSerializer(typeof(List<Class1>)); // Здесь ошибка в рантайме
StreamWriter myWriter = new StreamWriter(FileName);
mySerializer.Serialize(myWriter, obj);
myWriter.Close();
}
else
{
XmlSerializer mySerializer = new XmlSerializer(typeof(List<Class1>));
FileStream myFileStream = new FileStream(FileName, FileMode.Open);
obj = (List<Class1>)mySerializer.Deserialize(myFileStream);
obj[0].Data.ForEach(delegate(char c)
{
Console.WriteLine(c);
});
Console.ReadKey();
}
}
}
}Serial.Class1 недоступен в силу его уровня защиты. Возможна обработка только общих типов.
Решение задачи: «XML сериализация и ошибка "Класс недоступен в силу его уровня защиты"»
textual
Листинг программы
obj = (List<Class1>)mySerializer.Deserialize(myFileStream);