C#.NET如何不序列化字段、属性

理解序列化与忽略字段属性的技巧
本文详细解释了如何在序列化过程中选择性地处理公开属性与字段,包括XML、JSON和BinaryFormatter的不同应用,同时介绍了如何使用特定属性(如[Serializable]、[NonSerialized]等)来控制序列化行为,以避免不必要的字段或属性被序列化到档案中。

当我们使用公开属性以及公开字段时,都可以顺利的被序列化,

 

01. [Serializable]
02. public class MyClass
03. {
04.     public int ID;
05.
06.     public string Address;
07.
08.     private int _age;
09.
10.     public string Name { get; set; }
11.
12.     public int Age
13.     {
14.         get { return _age; }
15.         set { _age = value; }
16.     }
17. }

Xml序列化成档案后的结果就像下图:

\

JSON

\

bin,因为bin档案肉眼看不懂,所以用反序列化表示

 

\

但总是会有不想要存成档案的字段或属性

JSON及XML 若是不想被序列化 "属性" 及 "字段" 使用以下Attribute:

[System.Xml.Serialization.XmlIgnore] [System.Web.Script.Serialization.ScriptIgnore] BinaryFormatter 若是不想被序列化 "属性" 只要在相对应的 "字段" 使用以下:[NonSerialized] 看个例子:

01. [Serializable]
02. public class MyClass
03. {
04.     [NonSerialized]
05.     public int ID;
06.
07.     public string Address;
08.
09.     [NonSerialized]
10.     private int _age;
11.
12.     public string Name { get; set; }
13.
14.     [System.Xml.Serialization.XmlIgnore]
15.     [System.Web.Script.Serialization.ScriptIgnore]
16.     public int Age
17.     {
18.         get { return _age; }
19.         set { _age = value; }
20.     }
21. }

Xml序列化,忽略Age属性

\

JSON序列化,忽略Age属性

\

BinaryFormatter序列化忽略 Age属性 及 ID 字段

\

转载于:https://www.cnblogs.com/xuxiuxiu/p/4137837.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值