J'ai des données raisonnablement limitées à déplacer entre silverlight et un service WCF. J'ai donc mis en place des contrats de données. J'espérais pouvoir utiliser les mêmes classes pour une validation limitée des données du côté client, sans avoir besoin de l'overhead des DTOs et autres.
J'ai un contrat qui ressemble à ça :
[DataContract]
class MyObject
{
private String _id;
[DataMember]
public String ID
{
get
{
return _id;
}
set
{
_id = value;
DoStuff();
}
}
Maintenant quand je désérialise l'objet, le setter sera exécuté. Cela va définir la variable privée _id, ce qui est bien. Mais je ne veux pas que le DoStuff() soit exécuté lors de la désérialisation.
J'avais espéré pouvoir utiliser les attributs [OnDeserializing] et [OnDeserialized]. J'aurais pu définir un drapeau bool que je pourrais utiliser pour contrôler ce qui est exécuté dans le setter. Cela fonctionne en fait du côté serveur, mais Silverlight ne dispose pas de ces attributs.
Des suggestions ?