2010-12-06 61 views
0

我需要攔截使用WCF創建的服務和基於REST的服務webHttpBinding的響應。如何使用WebHttpBinding自定義WCF服務中的XmlResponse

現在我想要以自定義的方式發出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> 

但我想它在不同的自定義way.Something像下面

<?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。但是我找不到任何代碼參考或示例。

任何好主意如何實現這一目標?

+0

如果您發佈代碼或XML,請**在文本編輯器中突出顯示這些行,然後單擊「代碼」按鈕( 101 010)在編輯器工具欄上進行很好的格式化和語法突出顯示! – 2010-12-06 16:36:20

回答

1

所以我假設你的WCF服務方法在這個方法調用中返回一個User對象的實例,對嗎?

爲什麼不直接定義一個名爲rsp的包裝類,其中包含User實例?然後返回rsp對象將呈現所需的樣式。只是一個很好的乾淨的包裝 - 沒有凌亂的XML操作......

+0

我必須刪除所有的命名空間信息以及xmlns:i =「http://www.w3.org/2001/XMLSchema-instance」,所以我必須攔截。我發現沒有辦法刪除它們 – 2010-12-07 05:45:34

相關問題