Dans .NET 3.5, je voudrais créer un attribut personnalisé (disons [NetDataMember]) qui permuterait le comportement de sérialisation de DataContractSerializer
à NetDataContractSerializer
.Attribut personnalisé pour passer la sérialisation de propriété à NetDataContractSerializer
En fait, pour une classe A
comme illustré ci-dessous
[DataContract]
class A
{
[DataMember]
public int SimpleProperty { get; set; }
[Transcient]
public IBar ComplexProperty { get; set; }
}
Je voudrais obtenir un sérialiseur qui se comporterait comme DataContractSerializer
par défaut, mais qui serait outrepassée avec NetDataContractSerializer
biens immobiliers marqués par [NetDataMember]
.
Une idée de comment concevoir un sérialiseur qui permettrait d'atteindre un tel comportement?
Merci pour le lien. En fait, je n'arrive pas à produire l'effet de priorité. J'applique l'attribut, mais le comportement de substitution n'est jamais appelé au moment de (dé) sérialisation. Suis-je en manque lors de l'instanciation du DCS? –
Lors de la désérialisation, dans WCF, aucun constructeur n'est jamais appelé - c'est un comportement normal. –
Mais pour voir si le NetDataContractSerializer est utilisé, vous devriez regarder les messages envoyés - soit utiliser le WcfTestClient.exe dans votre répertoire Visual Studio Common7/IDE, ou utiliser quelque chose comme Fiddler pour voir le trafic –