【发布时间】:2013-08-22 08:14:27
【问题描述】:
我在我的简单项目中遇到了问题。我想建立一个书店经理来跟踪进店的书(在帐单上,来自供应商)和在我卖掉书时离开书店的书。为了跟踪书籍,我将它们存储在字典中,key 是书籍的 ISBN。它看起来像这样:
Dictionary<string,IBook> BOOKS;
此外,我还需要一本记录不同供应商账单的字典。 那个看起来像这样:
Dictionary<string,Supplier> SUPPLIERS;
本例中的 key 是供应商名称。 每个供应商都有一个账单列表作为数据字段:
[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;
}
当我关闭应用程序时,我序列化 BOOKS 字典和 SUPPLIERS 字典。当我打开它时,会发生反序列化。我的问题与 Bill 类中的静态成员 billNumber 有关。它不会序列化。每次我打开应用程序时,变量都会重置为 0。
我尝试使用来自how to serialize and deserialize static member 的示例,但我没有序列化直接类中的静态成员(在我的例子中是供应商类)。
任何帮助表示赞赏:)
【问题讨论】:
-
改用真实的数据库。
-
为什么 billNumber 是静态的?为什么需要序列化它?
-
我使用 billNumber 静态,这样当我添加新的 Bill 时,我可以区分它们。我需要序列化它,因为当我关闭应用程序时,值会丢失。
标签: c# serialization dictionary