Я создал сериализуемый класс, и после сериализации некоторых экземпляров класса при десериализации этого файла я получаю один класс, но мне нужно получить все классы.
Я сериализую классы, используя BinaryFormatter. Пишу на C# с использованием .NET Framework.
Моя десериализация сейчас:
using (var fs = new FileStream("doing.dat", FileMode.OpenOrCreate))
{
ActionsClass = formatter.Deserialize(fs) as Doing;
items.Add(ActionsClass.action);
}
Делает класс:
[Serializable]
public class Doing : ActionsForm
{
public Doing(DateTime leadtime, string act)
{
if (leadtime < DateTime.Now) throw new ArgumentException("Some error text", nameof(leadtime));
if (act == "") throw new ArgumentException("Some error text", nameof(act));
PostTime = DateTime.Now;
TimeLead = leadtime;
action = act;
}
}
И класс ActionsForm:
[Serializable]
public abstract class ActionsForm
{
public DateTime PostTime { get; protected set; }
public DateTime TimeLead { get; protected set; }
public string action { get; protected set; }
}





Вы должны десериализовать время, когда вы сериализовали свой объект.
BinaryFormatter formatter = new BinaryFormatter();
DerivedClass object1 = new DerivedClass() { _baseField = "Object 1" };
DerivedClass object2 = new DerivedClass() { _baseField = "Object 2" };
using (FileStream writestream = new FileStream(@"data.bin", FileMode.Create, FileAccess.Write))
{
formatter.Serialize(writestream, object1);
formatter.Serialize(writestream, object2);
}
FileStream readstream = new FileStream(@"data.bin", FileMode.Open, FileAccess.Read);
DerivedClass deserializedobject1 = (DerivedClass)formatter.Deserialize(readstream);
DerivedClass deserializedobject2 = (DerivedClass)formatter.Deserialize(readstream);
readstream.Dispose();
В чем именно заключается вопрос или проблема? Что вы имеете в виду под "но мне нужно получить все классы"? Пожалуйста, редактировать вашего вопроса, чтобы включить минимальный воспроизводимый пример, который может быть скомпилирован и протестирован другими.