2010-06-21 7 views
0

J'ai un webservice de base asp.net qui retourne une réponse simple. Pour le rendre compatible ucore, j'ai besoin d'appliquer un XSLT. Existe-t-il un moyen d'appliquer un XSLT à ma réponse?Webservice pour appliquer XSLT à la réponse avant l'envoi?

Je suis conscient que le récepteur peut l'appliquer sur leur extrémité, mais dans ce scénario, je dois l'appliquer de mon côté.

Merci!

Répondre

0

Voir Custom Message Formatters.

Ignorer les services Web ASMX. Ils ont très peu d'extensibilité et sont maintenant considérés comme une «technologie héritée» par Microsoft.

+0

Merci John, "héritage" vous avez probablement raison. Mais vous devez admettre qu'ils sont super faciles et rapides, c'est agréable de pouvoir installer et travailler le service en moins de 5 minutes. – aron

+0

@aron: il est très rapide de configurer un service WCF, et vous trouverez beaucoup plus difficile de faire ce que vous voulez en utilisant les services ASMX. BTW, "héritage" signifie également qu'ils ne font que corriger les bogues critiques. Cela signifie qu'ils ne corrigent aucun bug que vous voulez corriger. –

0

Que vous parliez d'ASMX hérité ou des services Web WCF actuels, vous parlez de contrôler le XML sérialisé en sortie. Par défaut, les gestionnaires ASMX et WCF lancent les routines de sérialisation pour les objets sous-jacents utilisés dans leurs méthodes de service Web respectives.

Vous pouvez le faire si vous voulez travailler en dehors de la construction de XML sérialisé. Votre méthode peut renvoyer une chaîne qui n'est rien d'autre que la sortie de votre méthode. Vous devrez:

  1. Allez dans la logique de la construction de votre objet résultant
  2. sérialiser l'objet XML - comme une chaîne
  3. Exécuter une transformation XSL sur le XML à un flux de sortie
  4. Renvoyer le contenu du flux de sortie à partir de votre méthode

Ceci est un hack extrêmement moche, cependant.

EDIT: par référence de John, se concentrer sur la résolution de ceci par le contrôle de la sortie XML. Si vous utilisez ASMX hérité, il s'agit d'une sérialisation XML de base. Si vous utilisez WCF, il existe d'autres options de mise en forme disponibles.

+0

-1 pour suggérer la sérialisation XML, en particulier dans le contexte de WCF. –

+0

John, WCF est en train de sérialiser XML sous les couvertures. Voir DataContractSerializer. Mon commentaire était générique - se concentrer sur le contrôle de la sortie xml, sans incorporer XSLT. – jro

+0

désolé, je pensais que vous faisiez référence à XmlSerializer. –

Questions connexes