9

WebGetAttribute は、Method = "GET" の WebInvokeAttribute の単なる構文糖ですか? それとも根本的な違いがありますか?

4

2 に答える 2

8

WebGet と WebInvoke が非常に似ているというあなたの直接の観察は、真実からかけ離れているわけではありません。既に述べたように、WebGet は HTTP GET 動詞に適用されますが、WebInvoke は他のすべての動詞 (PUT、POST、DELETE など) に適用するために使用できます。

WebInvoke のパラメーターの多くは、WebGet のパラメーターを反映しています。BodyStyle、RequestFormat、ResponseFormat、および UriTemplate はすべて、WebGet と WebInvoke の両方に存在します。1 つの差別化要因は、WebInvoke の「メソッド」パラメーターの存在です。Method パラメーターは、操作に対応する HTTP 動詞を指定します。デフォルト値は POST です。

Reflector を使用して WebGet と WebInvoke の内部を調べる機会はありませんでしたが、共通の系統として System.Attribute を共有しているように見えるだけで、それらは非常に似ていると思われます。

于 2009-07-02T06:51:21.583 に答える