Konfiguracja:C# dziedziczeniu rodzajowej kolekcji i serializacji
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;} }
}
Teraz, starając się szeregować stosując następujący fragment kodu:
ItemCollection items = new ItemCollection();
...
XmlSerializer serializer = new XmlSerializer(typeof(ItemCollection));
using (FileStream f = File.Create(fileName))
serializer.Serialize(f, items);
Po patrząc na wynikowym pliku XML widzę, że ItemCollection.Name wartość nie ma!
I pomyśleć, co może się dziać to, że serializer widzi typ ItemCollection jak zwykłą Collection w ten sposób ignorowanie wszelkich innych dodanych właściwości ...
Czy ktoś napotkały na taki problem i znalazł rozwiązanie?
Pozdrawiam,
Stecy
+1; zauważ również, że zachowanie jest również wspólne dla większości frameworków wiążących dane. Po prostu nie jest dobrym pomysłem, by kolekcje miały własności; kolekcje mają przedmioty (tylko) - to jest ich praca. –
Fajnie, teraz muszę zawinąć kilka klas pochodzących z kolekcji, a następnie ... Obawiam się, że utrudniłoby to diagram klasowy ... –