générique La configuration:C# héritant de collecte et de sérialisation
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;} }
}
Maintenant, de sérialisation en utilisant le fragment de code suivant:
ItemCollection items = new ItemCollection();
...
XmlSerializer serializer = new XmlSerializer(typeof(ItemCollection));
using (FileStream f = File.Create(fileName))
serializer.Serialize(f, items);
En regardant le XML résultant je vois que le ItemCollection.Name la valeur n'est pas là!
Je pense que ce qui peut se passer est que le sérialiseur voit le type ItemCollection comme une simple collection ignorant ainsi toutes les autres propriétés ajoutées ...
Est-ce qu'il ya quelqu'un ayant rencontré un tel problème et trouvé une solution?
Cordialement,
STECY
+1; Notez également que le comportement est partagé par la plupart des frameworks de liaison de données. Ce n'est simplement pas une bonne idée que les collections aient des propriétés; collections ont des objets (seulement) - c'est leur travail. –
Nice, maintenant je dois emballer plusieurs classes dérivées de la collection puis ... Je suis préoccupé par le fait que cela compliquerait le diagramme de classe ... –