SOAPとJSONエンドポイントを提供するWCFサービスを作成しようとしています。
リクエストURLのパラメータをメソッドパラメータにマッピングするには、WebGetAttribute
のUriTemplate
メソッドを使用します。URIパラメータをパラメータオブジェクトのプロパティにマップしますか?
これは、単純なデータ型のパラメータが必要なメソッドでは問題ありません。
しかし、次のような方法は、複雑なオブジェクトを期待して、私はので、サービスのSOAP-一部のそれを変更したくない:
[OperationContract]
Person Test(TestParameters parameters);
TestParametersは(プロパティの数が多いように見えるしながら、 ):今すぐGET経由でメソッドを呼び出すとき、私はリクエストURIからparameters.First
とparameters.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パラメータマッピングの作成を可能にする他の構文はありますか?
これ以外の場合は、この動作を簡単に追加できるかどうかを知っていますか?
ご返信いただきありがとうございます。