我正在開發一個項目,需要關於自動遞增ID字段的幫助。C# - 跟蹤序列化和反序列化之間的自動增量變量
在序列化方面,當涉及到靜態變量的反序列化時,從每個實例化類的每個實例化的靜態變量的反序列化中獲取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查詢該類的所有實例並獲取最高編號,然後相應地設置靜態變量。
我相信有一個更優雅的方式來處理這個問題。
任何幫助將是偉大的,謝謝。
問題變了嗎?我不記得'iCategoryID'是原始版本;無論哪種方式,你實際上並沒有在任何時候爲'iCategoryID'賦值......所以我們應該期望*值爲0,否? –
這並不意味着在那裏。我現在拿出來了。謝謝:-) –
其實對不起,它應該在那裏。我還添加了如何在構造函數中使用它。但我認爲這不會改變問題的基礎。對困惑感到抱歉。 –