2009-11-02 55 views
0

爲什麼像下面這樣的東西是不允許的。我的意思是爲什麼下面的方法不會暴露在Web服務中。爲什麼webservices不允許靜態方法?

[WebMethod] 

public static string Foo() 

{ 

    return "bar"; 

} 

這將是巨大的,如果你能提供給我一個非特定語言的高層次的答案,而不是像「代理對象不能調用靜態方法」的東西。

回答

2

Web服務器可以同時爲多個實例提供Web服務請求。這些可以分成多個進程,所以任何形式的內存共享狀態都是不可取的。雖然這不是一個強有力的論點,但它可以解釋爲什麼框架的設計者不想鼓勵將這些方法看作靜態的。

+0

我會部分購買你的論點。靜態變量在安裝過程中由對象共享。如果你產生了2個進程,那麼靜態數據並不是真正共享的嗎? – 2009-11-02 12:50:58

相關問題