Question

J'utilise une bibliothèque de classes qui expose quelques objets. Ces objets ont deux propriétés qui contiennent des données mes clients ont besoin. Je voudrais créer un service WCF qui renvoie les objets à mes clients, mais je ne peux pas mettre à jour la bibliothèque de classes afin d'ajouter les attributs DataContract et DataMember. Quelle est la meilleure façon d'exposer ces objets?

Était-ce utile?

La solution

Vous pouvez utiliser un DataContractSurrogate .

  

... Vous pouvez appliquer la DataContract   attribuer à la classe de personne, mais   Ce n'est pas toujours possible. Pour   par exemple, la classe Person peut être   définie dans un ensemble séparé sur   que vous avez aucun contrôle.

     

Compte tenu de cette restriction, une façon de   sérialiser la classe Person est   le remplacer par une autre classe   est marquée par DataContractAttribute   et copier les données nécessaires à la   nouvelle classe. L'objectif est de faire   apparaît la classe en tant que personne   DataContract à la   DataContractSerializer. Notez que cette   est un moyen pour sérialiser des données non   cours de contrat. ...

Autres conseils

Si vous ne pouvez pas définir les [DataContract] et [DataMember] attributs de votre objet, vous devez trouver un moyen de les exposer en utilisant le XmlSerializer.

Vous pouvez définir un service ou une opération à utiliser XmlSerializer en spécifiant le [XmlSerializerFormat] attribut soit sur votre contrat de service, ou un OperationContract individuel.

Est-ce que l'aide peut-être?

Marc

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top