我正在做一个项目,需要有关自动递增 ID 字段的帮助。
在序列化方面,当涉及到静态变量的反序列化时,从上次序列化时获取 ID 的最佳方法是什么,您在每次实例化类时都会自动递增。
例如...
[Serializable]
class Category
{
private static int iCatID = 0;
private int iCategoryID;
private string sCategory;
public Category(string _sCategory)
{
iCatID++;
iCategoryID = iCatID;
sCategory = _sCategory;
}
}
我学到了一个艰难的方法,在创建了这个类的 5 个左右的实例之后,我对其进行了序列化,然后反序列化,并期望iCatID
在我开始创建更多的类实例时从它停止的地方继续,但它当然已经重置回 0 .
我想知道的是如何在序列化和反序列化之间跟踪自动递增变量以及最佳实践是什么?
我想到了两种可能的方法:
- 序列化类时,将静态变量的值保存到全局设置并再次获取该值,并在反序列化时从全局设置中设置静态变量。
- 反序列化类时,使用 linq 查询类的所有实例并获取最大的数字,然后相应地设置静态变量。
我确信有一种更优雅的方式来处理这个问题。
任何帮助都会很棒,谢谢。