Web服务在发送之前将XSLT应用于响应?

时间:2010-06-21 19:33:41

标签: web-services xslt

我有一个基本的asp.net webservice,它返回一个简单的响应。 为了使ucore符合要求,我需要应用XSLT。 有没有办法将XSLT应用于我的回复?

我知道接收器可以在它们的末端应用它,但在这种情况下我需要将它应用到我的最后。

谢谢!

2 个答案:

答案 0 :(得分:0)

无论您是在谈论旧版ASMX还是当前的WCF Web服务,您都在谈论在输出上控制序列化XML。默认情况下,ASMX和WCF处理程序都将触发其各自Web服务方法中使用的基础对象的序列化例程。

如果你想在序列化XML的构造之外工作,你可以这样做。您的方法可以返回一个字符串,该字符串只不过是您方法的输出。你需要:

  1. 完成构建结果对象的逻辑
  2. 将对象序列化为XML - 作为字符串
  3. 对XML运行XSL转换为输出流
  4. 从方法
  5. 返回输出流的内容

    但这是一个非常糟糕的黑客攻击。

    编辑:根据John的参考,重点是通过控制输出XML来解决这个问题。如果您使用的是旧版ASMX,则这是基本的XML序列化。如果您使用的是WCF,则可以使用更多格式选项。

答案 1 :(得分:0)

请参阅Custom Message Formatters

忽略ASMX Web服务。它们几乎没有可扩展性,现在被微软视为“遗留技术”。