Objet de la bibliothèque Exposer de classe en utilisant WCF
-
18-09-2019 - |
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?
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