2011-03-04 5 views
0

Je souhaite que toutes les chaînes des messages WCF entrants soient tronquées afin que je n'ai pas à m'inquiéter de les couper dans toutes mes opérations. Je peux accomplir cela avec un IParameterInspector et beaucoup de logique de réflexion délicate, mais il semble qu'il doit y avoir un meilleur moyen.Ajustement automatique des chaînes dans les messages WCF entrants

J'ai essayé d'utiliser un IDataContractSurrogate, mais le GetDeserializedObject n'est pas appelé pour la désérialisation de chaîne.

Existe-t-il un autre moyen de connecter dans DataContractSerializer qui me permettrait de modifier des chaînes sans réflexion massive?

+0

Sons dangereux du point de vue de la maintenance. Mais cela semble aussi intéressant, et j'aime vivre dangereusement. – Amy

Répondre

0
  1. Vous pouvez le faire en implémentant IXMLSerializable. Passez par ce question. Bien sûr, vous devez implémenter l'opération ReadXml.

  2. Qu'est-ce qui vous empêche de lancer l'objet et de le mettre à jour tout en inspectant le paramètre? Si vous pensez que le service est utilisé par des clients spécifiques .Net, vous pouvez créer un client de service wcf, y ajouter votre logique de découpage et le distribuer (pour que les consommateurs puissent utiliser directement le client au lieu de créer un proxy à votre service). Un aspect secondaire avec ceci est que vous devez redistribuer les fichiers DLL client chaque fois qu'il y a un changement dans le contrat.

Questions connexes