2012-01-03 19 views
5

SOAPとJSONエンドポイントを提供するWCFサービスを作成しようとしています。
リクエストURLのパラメータをメソッドパラメータにマッピングするには、WebGetAttributeUriTemplateメソッドを使用します。URIパラメータをパラメータオブジェクトのプロパティにマップしますか?

これは、単純なデータ型のパラメータが必要なメソッドでは問題ありません。

しかし、次のような方法は、複雑なオブジェクトを期待して、私はので、サービスのSOAP-一部のそれを変更したくない:

[OperationContract] 
Person Test(TestParameters parameters); 

TestParametersは(プロパティの数が多いように見えるしながら、 ):今すぐGET経由でメソッドを呼び出すとき、私はリクエストURIからparameters.Firstparameters.Secondを初期化できるようにしたいと思い

[DataContract] 
public class TestParameters 
{ 
    [DataMember] 
    public string First 
    { 
     get; 
     set; 
    } 
    [DataMember] 
    public string Second 
    { 
     get; 
     set; 
    } 
} 

、例えば

/Test?first=Foo&second=Bar 

私はすでに方法に

[WebGet(UriTemplate = "/Test?first={parameters.First}&second={parameters.Second})] 

を適用してみました。
ただし、この構文はWCFではサポートされていないようです。エラーメッセージは言う:

のSystem.InvalidOperationException:契約 「IService1」の動作「テスト」 「PARAMETERS.FIRST」という名前のパラメータを期待UriTemplateがありますが、上のその名前の入力パラメータがありません 操作。

パラメータオブジェクトのプロパティへのURIパラメータマッピングの作成を可能にする他の構文はありますか?

これ以外の場合は、この動作を簡単に追加できるかどうかを知っていますか?

ご返信いただきありがとうございます。

答えて

1

PUTやPOSTメソッドと組み合わせるなど、JSONに頼らざるを得ません。説明はthis postを参照してください。

関連する問題