假设我有一堆方法的Web服务,并且该web服务上有一个公共共享变量,如果我从客户端A收到请求并且他更改了此变量的值,那么客户端B将看到价值由客户A改变?
让我试着更好地解释自己,例如
假设我有这个变量:
Public Shared state As Boolean = False(Visual Basic)
public static bool state = false; (C#)
然后客户端A
state = true (VB)
state = true; (C#)
当客户B检查变量状态的值时,它是真还是假?
答案 0 :(得分:6)
静态变量将在所有代理调用中共享,只要它不是Web园并且是进程内实现。静态变量的范围限定为应用程序域。
在上述情况下,客户B将看到客户A设置的值。
如果它是一个Web场,那么静态变量将是每个Web服务器,并且可能在Web请求中显示奇怪的行为。
作为一般说明,由于锁定等原因,建议对Web请求中的可写共享值保持极其谨慎。