2009-02-01 69 views
15

我剛剛注意到創建RESTful WCF服務時,WebInvoke屬性上的Method參數區分大小寫(需要CAPS)。在不同的Web方法類型(GET,PUT,POST,DELETE,HEAD)的.NET框架中是否有任何常量?

所以,

[WebInvoke(Method = "Delete")] 

不等於

[WebInvoke(Method = "DELETE")] 

這個錯誤是導致ProtocolException

System.ServiceModel.ProtocolException:遠程服務器返回意外的響應:(405)方法不允許。

我想知道在.NET框架中有一組常量,我應該在上面的例子中用「DELETE」代替。我當然可以定義自己的一組常量,但是如果感覺像框架中可能存在的東西,我只是想念它。

+0

下選擇我希望我可以給Silverlight更新(我維護Silverlight 2庫)的另一個投票;滾動你自己的,我猜... – 2009-03-16 07:35:18

回答

12

有點間接的,但也有System.Net.WebRequestMethods.Http常數:

public const string Connect = "CONNECT"; 
public const string Get = "GET"; 
public const string Head = "HEAD"; 
public const string MkCol = "MKCOL"; 
public const string Post = "POST"; 
public const string Put = "PUT"; 

但沒有「刪除」 - 建議你讓你自己......

煩人,有System.Web.HttpVerb,但它是internal ,所以不可用 - 而且它是一個枚舉,所以要在屬性中使用該名稱,您需要一些hackery。

+1

奇怪的是,他們沒有把東西放在System.ServiceModel.Web命名空間中。 – 2009-02-01 10:05:56

相關問題