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

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

     

    [Serializable]
    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] 看个例子:

    [Serializable]
    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 字段
     

    \
     

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值