選擇式序列化
類別經常包含不應序列化的欄位。例如,假設類別在成員變數中儲存執行緖 ID。當類別還原序列化時,類別在序列化時儲存 ID 的執行緒可能已不再執行,因此序列化此值就沒有意義。您可如下所示,以 NonSerialized 屬性標記成員變數,避免成員變數遭序列化。
[Serializable]
public class MyObject
{
public int n1;
[NonSerialized] public int n2;
public String str;
}
如果可能的話,讓可能含有安全性顧慮資料的物件不可序列化。如果物件必須序列化,請套用 NonSerialized 屬性至儲存敏感資料的特定欄位。若您未將這些欄位排除在序列化範圍外,請留意它們所儲存的資料可能公開給擁有序列化權限的所有程式碼。如需有關撰寫安全序列化程式碼的詳細資訊,請參閱安全性和序列化。
另請參閱
其他資源
二進位序列化
Remote Objects
XML 和 SOAP 序列化
Security and Serialization