generico Il setup:C# che eredita la raccolta e la serializzazione
class Item
{
private int _value;
public Item()
{
_value = 0;
}
public int Value { get { return _value; } set { _value = value; } }
}
class ItemCollection : Collection<Item>
{
private string _name;
public ItemCollection()
{
_name = string.Empty;
}
public string Name { get {return _name;} set {_name = value;} }
}
Ora, cercando di serializzare utilizzando il seguente frammento di codice:
ItemCollection items = new ItemCollection();
...
XmlSerializer serializer = new XmlSerializer(typeof(ItemCollection));
using (FileStream f = File.Create(fileName))
serializer.Serialize(f, items);
Upon guardando l'XML risultante vedo che l'ItemCollection.Name il valore non c'è!
Penso che quello che può accadere è che il serializzatore vede il tipo ItemCollection come una semplice raccolta ignorando in tal modo tutte le altre proprietà aggiunti ...
C'è qualcuno dopo aver incontrato un tale problema e trovato una soluzione?
saluti,
Stécy
+1; si noti inoltre che il comportamento è condiviso anche dalla maggior parte dei framework di associazione dati. Semplicemente non è una buona idea che le collezioni abbiano proprietà; le collezioni hanno articoli (solo) - questo è il loro lavoro. –
Bello, ora ho bisogno di racchiudere diverse classi derivate dalla collezione quindi ... Sono preoccupato che complicherebbe il diagramma di classe anche se ... –