Это приводит к исключению сериализации во время выполнения. Это просто демонстрационный проект, чтобы проверить лучший способ сделать это. Я включил основной метод и класс, которые я пытаюсь выполнить сериализацией.Какую ошибку я делаю при сериализации?
Игнорировать: я действительно не могу добавить больше деталей, я описал проблему, приложил код, это «пожалуйста, добавьте больше деталей», вещь - самая глупая вещь. Позвольте мне опубликовать его уже.
Data toSend = new Data();
toSend.Output();
///SERIALIZE
BinaryFormatter formatter = new BinaryFormatter();
Stream streamOut = File.OpenWrite("file");
formatter.Serialize(streamOut, toSend);
streamOut.Close();
Console.WriteLine("----------------------------");
///DESERIALIZE
Stream streamIn = File.OpenRead("file");
Object received = formatter.Deserialize(streamIn);
Data toReceive = (Data)received;
toReceive.Output();
class Data : ISerializable
{
int integerData;
string stringData;
bool booleanData;
int shouldnotbeserialized;
public Data()
{
integerData = 1;
stringData = "Hello";
booleanData = true;
shouldnotbeserialized = 55;
}
//To deserialize
public Data(SerializationInfo info, StreamingContext context)
{
integerData = info.GetInt32("theint");
stringData = info.GetString("thestring");
booleanData = info.GetBoolean("thebool");
}
public void Output()
{
Console.WriteLine(integerData);
Console.WriteLine(stringData);
Console.WriteLine(booleanData);
Console.WriteLine(shouldnotbeserialized);
}
//Implemented method to serialize
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("thestring", stringData);
info.AddValue("theint", integerData);
info.AddValue("thebool", booleanData);
}
}
Сообщение об исключении:
Тип 'SerializationDemo.Data' в 'Ассамблеи SerializationDemo, Version = 1.0.0.0, культура = нейтральной, PublicKeyToken = нуль' не отмечен как сериализуемый.
@walther Тип 'SerializationDemo.Data' в Assembly 'SerializationDemo, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null' не помечен как сериализуемый. – Innkeeper
Подождите ... Означает ли это, мне также нужен атрибут []? Не получается ли из интерфейса достаточно? – Innkeeper
'[Serializable]' то, что вам нужно – IAbstract