我希望在我的应用程序(Web服务)之外及其内部可以看到一个方法。
所以,有些事情是这样的:
[WebMethod]
public static CoordinataTratta TrovaTrattaPiuVicinaByCoordinate(double myLat, double myLng)
{
...
return coordinata;
}
// inside my application
var a = WebService.TrovaTrattaPiuVicinaByCoordinate(0, 0);
会产生一些问题吗?
答案 0 :(得分:2)
请记住,对Web方法的每次调用都将在同一进程中的单独线程中处理。这意味着所有静态变量将在所有线程之间共享,因此所有对Web服务器的调用都将共享。这可能导致难以重现和调试问题。
将方法设为静态可能不是一个大问题,但很容易导致使用静态变量/属性等。这需要在Web服务器中避免。
答案 1 :(得分:0)
它不是那样设计的。设计是创建Web服务类的实例,然后调用实例方法。
我只能猜到为什么微软会这样设计......
了解更多...... https://stackoverflow.com/a/1263387/3156647