2010-12-06 24 views
0

webHttpBinding(RESTベースのサービス)でWCFを使用して作成したサービスの応答をインターセプトする必要があります。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> 

が、私はMSDNで

<?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> 

以下のようなさまざまなカスタムway.Somethingでそれをしたい、私は私が IDispatchMessageInspectorを使用する必要があることを読んで外出するXMLを傍受するしかし、私はそれのためのコードのリファレンスまたは例を見つけることができませんでした。

これを実現する方法はありますか?

+0

あなたがコードやXMLを投稿する場合は、**これらの行をテキストエディタで強調表示し、 "code"ボタンをクリックしてください101 010)をエディタのツールバーに表示して、フォーマットや構文を強調表示します。 –

答えて

1

したがって、このメソッド呼び出しでWCFサービスメソッドがUserオブジェクトのインスタンスを返すと仮定します。

Userインスタンスを含むrspというラッパークラスを定義するだけではどうですか?次に、rspオブジェクトを返すと、目的のスタイルでレンダリングされます。ちょっといいクリーンなラッパー - あまりにも面倒なXML操作はありません......

+0

xmlns:i = "http://www.w3.org/2001/XMLSchema-instance"の名前空間情報もすべて削除する必要がありますので、私は傍受する必要があります。 –

+0

@Kunal:**なぜ**これらのxmlns =属性を削除する必要がありますか?彼らは正当な理由のためにそこにいる! –

+0

hmm私はこの質問をJ2MEアプリケーション開発者であるサービスユーザーに依頼しました。彼はAPIが限られていて、すべてのモバイルOS(アンドロイド、ブラックベリーなど)の標準機能を作成したいと言っていました。それは彼が別々のパーサーを作成することは困難でしたか? –

関連する問題