Я пытаюсь сериализовать массив объектов и строку. Это код сериализации:Как сериализовать несколько объектов разных типов?
FileStream s;
s = new FileStream(savefile.FileName, FileMode.Create, FileAccess.Write);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(s, ch.chaps);
bf.Serialize(s, txtPassword.Text);
s.Close();
Это код десериализации:
FileStream s;
s = new FileStream(openfile.FileName, FileMode.Open, FileAccess.Read);
BinaryFormatter bf = new BinaryFormatter();
string password = (string)bf.Deserialize(s);
ch.chaps = (Chapter[])bf.Deserialize(s);
s.Close();
int i;
if (password == txtPassword.Text)
{
for (i = 0; i <= 1000; i++)
{
try
{
combChapSelect.Items.Add(ch.chaps[i].chapName);
}
catch
{
i = 1000;
}
}
}
Это код и Visual Studio говорит, что нет никаких ошибок, но OpenFileDialog не закрывается, когда я выбираю файл и ничего не происходит. Я сделал что-то неправильно или есть другой способ сериализации разных типов объектов?
Является ли глава, реализующая ISerializable? Вы говорите, что пытаетесь «сериализовать», но в коде, который вы называете «deserialize». Так вы пытаетесь сериализовать или десериализовать? –