選擇性序列化
類別經常包含不應序列化的欄位。例如,假設類別會在成員變數中儲存執行緒識別碼。將類別還原序列化時,序列化類別時為其儲存識別碼的執行緒可能不會再執行;如此一來,序列化這個值就變得沒有意義。您可以用如下的 NonSerialized 屬性標記它們,以防止成員變數被序列化。
[Serializable]
public class MyObject
{
public int n1;
[NonSerialized] public int n2;
public String str;
}
如有可能,讓可能包含有安全性敏感資料的物件變成無法序列化。如果物件必須序列化,將 NonSerialized 屬性套用至儲存敏感資料的特定欄位。如果您沒有從序列化排除這些欄位,請留意它們儲存的資料將公開給沒有序列化權限的程式碼。如需撰寫安全序列化程式碼的詳細資訊,請參閱安全性和序列化。
請參閱
二進位序列化 | 使用 .NET 遠端處理存取其他應用程式定義域中的物件 | XML 和 SOAP 序列化 | 安全性和序列化