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 字段
     

    \
     

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM