Sérialisation impossible self tracking
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:
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:
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;
}
}
}
...} |