我有2个程序使用序列化,在2个不同的项目中。 程序1序列化和反序列化一个名为Quiz.Class的类的数组。该项目包含Quiz类。 计划2只反序列化有什么计划1连载:不同程序的序列化c#
private void loadSerialize(object sender, EventArgs e)
{
BinaryFormatter formatter = new BinaryFormatter();
Stream stream = new System.IO.FileStream("DataFile.bin", FileMode.Open, FileAccess.Read, FileShare.Read);
Quiz[] obj = (Quiz[]) formatter.Deserialize(stream);
for(int i = 0; i< obj.Length; i++)
{
quizes.Add(obj[i]);
}
stream.Close();
}
private void saveSerialize(object sender, FormClosedEventArgs e) {
Quiz[] obj = quizes.ToArray();
BinaryFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("DataFile.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
stream.Close();
}
两个节目有“loadSerialize”功能,而只有PROGRAM1有“saveSerialize”功能。 当我尝试反序列化Program2中的文件时,我发生serializationException。 说(消息错误是葡萄牙语,所以我把它翻译成英文): 找不到程序集'infoAplicadaEnsino,版本= 1.0.0.0,文化=中立,PublicKeyToken = null'。 如何在Program2中反序列化?
确实。还有一个懒惰选项 - 只需将第一个exe添加为第二个项目的引用即可。 –
现在我正在获取错误信息,因为当我试图序列化对象时,它正被另一个进程使用,因此无法访问该文件。 编辑:NVM,删除以前的序列化文件时解决。 – kadzu