如何使用WebHttpBinding在WCF服务中自定义XmlResponse

时间:2010-12-06 15:09:50

标签: wcf

我需要拦截使用WCF创建的服务与webHttpBinding(基于REST的服务)的响应。

现在我希望以自定义方式发布XML。例如,目前服务方法返回如下输出:

<User xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
   <UserCellInfo>+91-98102239</UserCellInfo>
   <UserDepartment>.NET Projects</UserDepartment>
   <UserID>A10129</UserID>
   <UserName>Jeff Thomson</UserName>
</User>

但我想以不同的自定义方式使用它。如下所示

<?xml version="1.0" encoding="UTF-8"?>
<rsp>
   <User>
      <UserCellInfo>+91-98102239</UserCellInfo>
      <UserDepartment>.NET Projects</UserDepartment>
      <UserId>A10129</UserId>
      <UserName>Jeff Thomson</UserName>
   </User>
</rsp>

在MSDN中,我读到我需要使用IDispatchMessageInspector来拦截出来的XML。但我找不到任何代码参考或示例。

任何好主意如何实现这个目标?

1 个答案:

答案 0 :(得分:1)

所以我假设你的WCF服务方法在这个方法调用中返回一个User对象的实例,对吗?

为什么不定义一个名为rsp的包装类,其中包含User实例?然后返回rsp对象将以所需的样式呈现。只是一个漂亮的干净包装 - 没有动态凌乱的XML操作......