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

时间:2022-04-17 14:54:19
  • 当我们使用公开属性以及公开字段时,都可以顺利的被序列化,

     

    [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序列化成档案后的结果就像下图:
     

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

    JSON
     

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

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

     

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

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


    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属性
     

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

    JSON序列化,忽略Age属性
     

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

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

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