WCF响应自定义

时间:2011-06-29 05:26:28

标签: wcf

我开发了一个WCF服务,其响应是这样的 -

  <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <getNameResponse xmlns="http://tempuri.com/">
            <name>4</name>
        </getNameResponse>
    </s:Body>
  </s:Envelope>

但我需要采用以下格式作出回应 -

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                         xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<a:getNameResponse xmlns:a="http://tempuri.com/">
<name>4</name>
</a:getNameResponse>
</s:Body>
</s:Envelope>

是否可以配置WCF服务来实现此行为?

1 个答案:

答案 0 :(得分:1)

是的,你可以这样做 - 我发布了关于在http://blogs.msdn.com/b/carlosfigueira/archive/2010/06/13/changing-prefixes-in-xml-responses.aspx为WCF服务定制前缀的帖子。但是,请注意,您拥有的两个响应并不相同 - 在第一个中,<name>元素位于命名空间“http://tempuri.org/”上,而在第二个上,它位于空(“”)命名空间。如果这确实是您所需要的,您可能需要考虑使用消息协定来更改正文元素的命名空间。