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

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

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    [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] 看个例子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    [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 字段
     

    \
     

     

posted @   遥望星空  阅读(19927)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2014-10-21 NHibernate使用无状态Sessions
2013-10-21 实施CMMI3的体会
点击右上角即可分享
微信分享提示