[C#.NET] 如何不序列化欄位、屬性
當我們使用公開屬性以及公開欄位時,都可以順利的被序列化,
public class MyClass { public int ID; public string Address; private int _age; public string Name { get; set; } public int Age { get { return _age; } set { _age = value; } } }
Xml序列化成檔案後的結果就像下圖:
JSON
bin,因為bin檔案肉眼看不懂,所以用反序列化表示
但總是會有不想要存成檔案的欄位或屬性
JSON及XML 若是不想被序列化 "屬性" 及 "欄位" 使用以下Attribute:
[System.Xml.Serialization.XmlIgnore] [System.Web.Script.Serialization.ScriptIgnore]
BinaryFormatter 若是不想被序列化 "屬性" 只要在相對應的 "欄位" 使用以下:
[NonSerialized]
看個例子:
public class MyClass { [NonSerialized] public int ID; public string Address; [NonSerialized] private int _age; public string Name { get; set; } [System.Xml.Serialization.XmlIgnore] [System.Web.Script.Serialization.ScriptIgnore] public int Age { get { return _age; } set { _age = value; } } }
Xml序列化,忽略Age屬性
JSON序列化,忽略Age屬性
BinaryFormatter序列化忽略 Age屬性 及 ID 欄位
若不知如合序列化請參考
BinaryFormatter: http://www.dotblogs.com.tw/yc421206/archive/2011/06/03/26979.aspx
XML: http://www.dotblogs.com.tw/yc421206/archive/2012/01/09/65028.aspx http://www.dotblogs.com.tw/yc421206/archive/2011/05/20/25595.aspx
JSON: http://www.dotblogs.com.tw/yc421206/archive/2011/12/23/63177.aspx
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET