Bonjour, je cherche à créer une sortie xml de mon tableau d'élément.
Le problème c'est qu'il a une propriété ObjectChangeTracker qui a un attribut de type dictionnary et donc la serialization automatique plante. J'ai pourtant mis un Xmlgnore sur cette propriété mais ça ne fonctionne pas.
Comment faire pour pouvoir sérialiser et désérialiser transquillement sans devoir le faire à la main?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 protected string ToXml() { StringBuilder output = new StringBuilder(); XmlWriterSettings ws = new XmlWriterSettings(); ws.Indent = true; using (var writer = XmlWriter.Create(output, ws)) { XmlSerializer xmlSerialiser = new XmlSerializer(this.Items.GetType()); xmlSerialiser.Serialize(writer, this.Items); writer.Flush(); } return output.ToString(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 public abstract partial class ItemBdd: IObjectWithChangeTracker, INotifyPropertyChanged, INotifyPropertyChanging { private ObjectChangeTracker _changeTracker; /// <summary> /// Gets or sets the ChangeTracker. /// </summary> /// <value>The ChangeTracker.</value> [DataMember] [XmlIgnore] public ObjectChangeTracker ChangeTracker { get { if (_changeTracker == null) { _changeTracker = new ObjectChangeTracker(); _changeTracker.ObjectStateChanging += HandleObjectStateChanging; } return _changeTracker; } set { if(_changeTracker != null) { _changeTracker.ObjectStateChanging -= HandleObjectStateChanging; } _changeTracker = value; if(_changeTracker != null) { _changeTracker.ObjectStateChanging += HandleObjectStateChanging; } } } ...}
Partager