我正在使用序列化保存我的班級列表。這部分工作完美,但是當我嘗試反序列化時,它並沒有做任何事情。DeSerializing列表不起作用
private class Company : ISerializable
{
public string Name;
public System.IO.FileSystemWatcher Watch;
public string Email;
}
的方法:
public Company(SerializationInfo info, StreamingContext ctxt)
{
Name = (String)info.GetValue("Name", typeof(string));
Watch.Path = (String)info.GetValue("Watch Path", typeof(string));
Email = (String)info.GetValue("Email address", typeof(string));
}
最後的序列化本身:
Stream stream = File.Open(User + ".osl", FileMode.Create);
BinaryFormatter bformatter = new BinaryFormatter();
bformatter.Serialize(stream, CompanyList);
stream.Close();
CompanyList
是列表拿着Company
類對象。當我檢查文件時,它完美無缺。但是,當我嘗試反序列化到CompanyList
時,它不起作用。它經歷了沒有錯誤,它只是不回饋任何信息。
我只是剛開始使用序列化,所以我敢肯定我搞砸了一些東西。
編輯反串行化代碼:
public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
{
info.AddValue("Name", Name);
info.AddValue("Watch Path", Watch.Path);
info.AddValue("Email address", Email);
}
它看起來像這樣。然後我把它稱爲公司名單: (List<Company>)bformatter.Deserialize(stream);
請顯示您的反序列化代碼。 – driis 2011-05-04 20:13:34
我用代碼更新了問題。對不起,花了這麼長時間。 :) – SaintHUN 2011-05-04 20:38:03
如果你嘗試'對象shouldBeCompany = bformatter.Deserialize(stream);'並且在調試器中查看'shouldBeCompany'會怎麼樣?它是什麼類型? – 2011-05-04 20:42:33