Voici un problème un peu subtil auquel je suis confronté et j'apprécierais toute aide.Utilisation de la bibliothèque de classes .NET 2.0 à partir du service Silverlight WCF, les propriétés publiques restent non exposées
Nous avons notre projet sur le mode de production, construit avec .NET 2.0. Nous avons récemment développé une application Silverlight externe à la solution 2.0, et elle "parle" avec un service WCF. Ce service consomme des DLL que nous copions à partir de nos dossiers de publication de solution 2.0, afin d'accéder aux fonctionnalités de notre solution d'origine.
Le service WCF expose plusieurs méthodes et objets provenant de notre solution 2.0. De toute évidence, il utilise [DataContract] et [DataMember] s en interne, et ceux-ci ne sont pas disponibles dans notre solution d'origine (puisque c'est .NET 2.0, et à ce stade la mise à niveau vers 3.5 n'est pas une option). Heureusement, WCF est capable de traiter nos objets sérialisables comme s'ils étaient définis comme des contrats, mais pour une raison étrange, seules les variables membres (même si elles sont définies comme privées!) Sont sérialisées; Les propriétés, même paramétrables et publiques, ne sont jamais sérialisées.
Nos classes d'objets dont nous avons besoin ont [Serializable()] définies dessus. J'ai regardé autour et n'ai pas pu trouver une bonne solution/explication à ceci. Cela a probablement à voir avec comment .NET 3.0/3.5 "voit" mes objets 2.0 (il suppose [DataMember] seulement sur les variables et jamais sur les propriétés).
Ma question est principalement comment exposer les propriétés publiques seulement, et jamais des variables privées?
Merci d'avance pour tout commentaire à ce sujet.
Itamar.