Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

XML [Serializable] και [NonSerialized] σε non-binary serialization

Îåêßíçóå áðü ôï ìÝëïò sakis_drm. Τελευταία δημοσίευση από το μέλος Τάσκος Γιώργος στις 17-08-2009, 18:22. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  17-08-2009, 01:20 53082

    XML [Serializable] και [NonSerialized] σε non-binary serialization

    Προσπάθω να αποθηκεύσω ένα αντικείμενο σε xml non-binary αρχείο, του οποίου η κλάση δεν έχει [Serializable] και παραδόξως αποθηκεύεται χωρίς να εμφανίσει exception! Το θέμα μου είναι ότι δεν μπορώ να χρησιμοποιήσω το [NonSerialized] για να κόψω κάποιο property από το να αποθηκευτεί στο xml. Γνωρίζει κανείς κάτι που μου διαφεύγει? Μήπως τα [Serializable] και [NonSerialized] δεν παίζουν σε non-binary serialization? Στο παρακάτω παράδειγμα είναι ενεργοποιημένο το Serializable.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    using System;
    using System.IO;
    using System.Xml.Serialization;
    
    namespace ConsoleApplication2
    {
        class Program
        {
            static void Main(string[] args)
            {
                ToSave to = new ToSave();
                to.Str1 = "value1";
                to.Str2 = "value2";
                XmlSerializer s = new XmlSerializer(typeof(ToSave));
                TextWriter w = new StreamWriter(@"c:\test.xml");
                s.Serialize(w, to);
                w.Close();
            }
        }
        
        [Serializable]
        public class ToSave
        {
            private string str1;
            public string Str1
            { get { return str1; } set { str1 = value; } }
    
            [NonSerialized]
            private string str2;
            public string Str2
            { get { return str2; } set { str2 = value; } }
        }
    }
    Αποτέλεσμα
    <?xml version="1.0" encoding="utf-8"?>
    <ToSave xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Str1>value1</Str1>
      <Str2>value2</Str2>
    </ToSave>


  •  17-08-2009, 15:11 53087 σε απάντηση της 53082

    Απ: XML [Serializable] και [NonSerialized] σε non-binary serialization

    Για δες το XmlIgnore.
  •  17-08-2009, 18:22 53099 σε απάντηση της 53087

    Απ: XML [Serializable] και [NonSerialized] σε non-binary serialization

    nullvoid:
    Για δες το XmlIgnore.

    +1

    Την [XmlIgnore] θέλεις γιατί αυτό το Attribute θα επηρεάσει το τι θα γραφεί στο XML αρχείο. Το βάζεις στο

    public property φυσικά.

    Το [NonSerialized] είναι για binary serialization....


Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems