CSharp:XML Serializzazione
From Aino Wiki
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 { // ... }