Ho un semplice oggetto grafico che vorrei serializzare, non sono stato in grado di trovare una soluzione a questo problema. Eccolo:Come si ottiene XmlSerializer per non serializzare i tag contenitore?
[XmlRoot]
public partial class MyData
{
private List<MyDatum> itemsField;
public MyData()
{
this.anyAttrField = new List<System.Xml.XmlAttribute>();
this.itemsField = new List<MyDatum>();
}
[XmlElement(Type = typeof(MyDatum))]
public List<MyDatum> Items
{
get
{
return this.itemsField;
}
set
{
this.itemsField = value;
}
}
}
Questo produce il seguente XML:
<MyData>
<Items>
<MyDatum/>
<MyDatum/>
...
</items>
</MyData>
Vorrei rimuovere il tag contenitore "Elementi" per la produzione di questo, invece:
<MyData>
<MyDatum/>
<MyDatum/>
...
</MyData>
ho provato tutti i tipi di soluzioni, ma non riesco a trovare una soluzione.
L'articolo è corretto; che in effetti rimuoverà l'elemento wrapper. Il 'Type = typeof (...)' è ridondante ma innocuo, btw. –
La sintassi è controintuitiva poiché "Items" è una raccolta di "MyDatum" e non un singolo oggetto "MyDatum". Non l'ho mai immaginato come una possibile soluzione nei miei esperimenti. Immagino che tu possa dire "Se non funziona, vai contro il tuo intuito". –