Login Login
MORE

WIDGETS

Widgets

Wanted articles
Who is online?
Article tools

CSharp:XML Serializzazione

From Aino Wiki

Jump to: navigation, search

Un elenco degli attributi utilizzabili è Attributi che controllano la serializzazione

Tips

Rinominare un oggetto\property raccoglitore

Si può usare una "convention" (convenzione per cui se una property si chiama in un modo si collega una azione standard) sugli attributi affinché una property non venga serializzata se non valorizzata o con valore non nel range consentito un determinato attributo.

        [XmlAttribute("LastUpdateUTC")]
        public DateTime LastUpdateUTC { get; set; }
        public bool ShouldSerializeLastUpdateUTC()
        {
            return (LastUpdateUTC.Year > 1900);
        }

Nascondere una property raccoglitore

La proprietà 'ShouldSerializeLastUpdateUTC' non figurerà nell'XML (serializzazione) in output. Si usa l'attributo della property: [XmlIgnoreAttribute].
Ce ne sono altri usabili come:

  • [System.Web.Script.Serialization.ScriptIgnore]
  • [XmlIgnore]
        [XmlAttribute("LastUpdateUTC")]
        public DateTime LastUpdateUTC { get; set; }
 
        [XmlIgnoreAttribute]
        public bool ShouldSerializeLastUpdateUTC()
        {
            return (LastUpdateUTC.Year > 1900);
        }

Invece, se si volesse nascondere la Property (proprietà) contenitore ma non la lista delle proprietà contenute segue esempio.
Cioè da questa situazione

<MyData>
    <Items>
        <MyDatum/>
        <MyDatum/>
        ...
    </items>
</MyData>

voglio:

<MyData>
    <MyDatum/>
    <MyDatum/>
    ...
</MyData>

Ciò in base all'articolo dell' [with-xmlserializer-and-datacontractserializer.aspx MSDN]

[XmlElement("MyDatum", Type = typeof(MyDatum))]
public List<MyDatum> Items {
    // ...
}

C# | XML


Attributi e Properties di oggetti

Author Giuseppe AINO