2009-11-02 5 views
0

Почему что-то вроде следующего не допускается. Я имею в виду, почему следующий метод не будет отображаться в веб-службе.Почему веб-службы не допускают статические методы?

[WebMethod] 

public static string Foo() 

{ 

    return "bar"; 

} 

Это будет здорово, если вы можете предоставить мне не язык специфический высокий уровень ответа, а не что-то вроде «прокси-объекты не могут вызывать статические методы».

ответ

2

Веб-сервер может одновременно обслуживать запросы для вашего веб-сервиса несколькими экземплярами. Они могут быть разделены на несколько процессов, поэтому любое общее состояние в памяти нежелательно. Хотя это не является веским аргументом, он мог бы объяснить, почему разработчики структуры не хотели поощрять думать об этих методах как о статичных.

+0

Я частично куплю ваш аргумент. Статические переменные распределяются между объектами процесса установки. Если вы создаете 2 процесса, статические данные на самом деле не разделены, не так ли? –