2

WebMessageBodyStyle.Wrapped操作名を使用する、または使用するWebMessageBodyStyle.WrappedRequest代わりに、WCF 要求に使用されるラッパーを変更する方法はありますか?

したがって、次の場合:

[OperationContract()]
[WebInvoke(Method = "PUT",
       BodyStyle = WebMessageBodyStyle.WrappedRequest,
       UriTemplate = "foo")]
bool PutSomeValue(string id, string bar);

リクエストの代わりに:

<PutSomeValue>
    <id>1234</id>
    <bar>myValue</bar>
</PutSomeValue>

私はそれが欲しい:

<MyNewWrapperName>
    <id>1234</id>
    <bar>myValue</bar>
</MyNewWrapperName>

応答で可能であり、要求の個々のパラメーターを変更できることはわかっていますが、要求ラッパーの変更に関する情報は見つかりません。

編集:これを行う理由は、ラッパーを「パラメーター」や「リクエスト」などの一般的なものに変更し、できれば操作ごとに同じラッパーを使用することです。これは、クライアントが各リクエストのラッパーについて心配する必要があるよりも、よりクリーンでユーザー フレンドリーになると思います。加えて、メタデータの公開も少なくなります。

4

2 に答える 2

1

ここで同様の質問; ジェネリック WCF 戻り値の型の名前を制御するにはどうすればよいですか?

そして答え https://stackoverflow.com/a/172370/929902

[OperationContract]
[return: MessageParameter(Name="YOURNAME")]
Response<List<Customer>> GetCustomers();
于 2012-08-24T16:10:16.300 に答える
0
[OperationContract(Name = "MyNewWrapperName")]
[WebInvoke(Method = "PUT",
       BodyStyle = WebMessageBodyStyle.WrappedRequest,
       UriTemplate = "foo")]
bool PutSomeValue(string id, string bar);
于 2012-06-05T13:44:41.430 に答える