Je whould aiment creat un mécanisme de sérialisation, pour travailler sur une variété d'entités, qui sont tous basés sur quelques classes de base. Maintenant je veux travailler avec DataContractSerializer, donc je dois marquer toutes mes classes avec [DataContract]. mais je ne veux pas faire cela parce que c'est une grande marge d'erreur pour les autres membres de mon équipe. Au lieu de cela, je veux placer un attribut singel sur mes classes de base, et ne pas m'inquiéter de tous les cals que j'ajoute. Je préférerais réellement hériter de [DataContract], si jamais je souhaite changer le mécanisme, je devrai changer seulement mon attribut héritant et pas toutes mes classes (il en va de même pour [DataMember]). Maintenant, le problème est que DataContractAttribute est une classe scellée.Comment créer un mécanisme de sérialisation basé sur l'héritage?
J'Imaginée 3 solution, mais je ne sais pas comment mettre en œuvre l'un d'eux ...
Première, j'ai entendu Rommer qu'il ya un moyen d'hériter d'une classe de Seald, qui sera Greate et sauvez-moi un lot de fuzz .
Deuxième, je sais que, avec la réflexion, il est possible de changer une classe dans l'exécution et recompiler retour à l'exécution, donc je pensais créer mon sur l'attribut et à l'exécution de remplacer tout mon attribut personnalisé avec
[ DataContract]
troisième, d'utiliser une sorte d'outil Précompilation qui remplacera mon attribut [DataContract]
donc, si vous avez une idée de comment mettre en œuvre l'une de ces trois (premier et troisième préféré), ou si vous avez une autre idée ce sera génial.
Merci.
Qu'est-ce qui ne va pas avec la sérialisation .NET actuelle? – Ian
Je souhaite que l'attribut de sérialisation soit hérité, [DataContract] n'est pas hérité. –
Bien sûr, DataContract est un attribut hérité. Ce que ce n'est pas inherit_able_ –