我在我的簡單項目中遇到了一個問題。我想要建立一個書店管理員,用來跟蹤書店裏的書籍(來自供應商的帳單)以及出售商店時出售的書籍。爲了跟蹤圖書,我將它們存儲在一本字典中,其中密鑰是本書的ISBN。它看起來像這樣:序列化和反序列化類中的靜態成員?
Dictionary<string,IBook> BOOKS;
此外,我需要另一本字典,跟蹤不同供應商的賬單。 這一個看起來是這樣的:
Dictionary<string,Supplier> SUPPLIERS;
在這種情況下,關鍵是供應商的名稱。 每個供應商都有一個數據字段票據的列表:
[Serializable]
public class Supplier
{
private List<Bill> supplierBills;
private string supplierName;
....
}
現在每個比爾看起來是這樣的:
[Serializable]
public class Bill
{
private List<IBook> billBooksList;
private double billTotalDue;
private DateTime billCreationDate;
private DateTime billDueDate;
public static int billNumber = 0;
}
當我關閉應用程序,我序列兩個教輔和供應商字典。當我打開它時,發生反序列化。我的問題與Bill類中的靜態成員billNumber有關。它不會序列化。每次我打開應用程序變量重置爲0.
我試圖使用how to serialize and deserialize static member的例子,但我沒有序列化從直接類靜態成員(在我的情況是供應商類)。
任何幫助表示讚賞:)
使用一個真正的數據庫來代替。 – Oscar
爲什麼billNumber靜態的?爲什麼你需要序列化它? – Vadim
我使用billN當我添加一個新的比爾時,我可以區分它們。我需要序列化它,因爲當我關閉應用程序時,這個值會丟失。 –