我有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