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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д