在Asp.Net静态变量行为(Static variable Behaviour in Asp.Ne

2019-10-29 07:51发布

我有一个OperationHelper类,如下所示:

public class OperationHelper
    {
        /// <summary>
        /// Gets or sets the Add Operation value
        /// </summary>
        public static bool AddOperation { get; set; }

        /// <summary>
        /// Gets or sets the Edit Operation value
        /// </summary>
        public static bool EditOperation { get; set; }

        /// <summary>
        /// Gets or sets the Delete Operation value
        /// </summary>
        public static bool DeleteOperation { get; set; }

        /// <summary>
        /// Gets or sets the Select Operation value
        /// </summary>
        public static bool SelectOperation { get; set; }
    }

对每个请求该值被重新分配。 当我运行这个地方它工作正常。 但是当我发表了一些代码值不会分配或不工作,因为它应该工作。

所以,想知道在Asp.Net与C#中的静态变量的行为。

是静态变量为全局变量,这是所有用户的访问? 如果用户A向真,用户B设置获取值True或它的变量的不同实例。

Answer 1:

所以,想知道在Asp.Net与C#中的静态变量的行为。

是静态变量为全局变量,这是所有用户的访问? 如果用户A向真,用户B设置获取值True或它的变量的不同实例。

该行为是一样,只有当你了池中一个工作进程中运行您的网站

如果您的游泳池有一个以上的工作过程,然后每个进程都有自己的静态值 ,并给出什么处理每个请求,给每个用户是您不知道的。 和工艺一起他们没有沟通。

因此,我们说,你有4个工作进程池。

用户A请求一个页面,流程1是回放和设置静态值A.
用户B请求一个页面,流程1是回放和静态值是A.
用户A请求一个页面,流程2是回放和静态值未设置。

等等。 更多关于这个问题: ASP.NET静态变量的生存期
当存储在asp.net aspx页面静态变量
使用的,而不是在ASP.NET应用程序状态的静态变量
在ASP.NET网站静态方法
Asp.net静态对象有时会出现非全球



Answer 2:

的行为static的变量是,他们正在尽快代码所属达到创建。 为了解决你的问题,可以考虑一个static constructor的类正确初始化所有值你的愿望

public class OperationHelper
{
    /// <summary>
    /// Gets or sets the Add Operation value
    /// </summary>
    public static bool AddOperation { get; set; }

    /// <summary>
    /// Gets or sets the Edit Operation value
    /// </summary>
    public static bool EditOperation { get; set; }

    /// <summary>
    /// Gets or sets the Delete Operation value
    /// </summary>
    public static bool DeleteOperation { get; set; }

    /// <summary>
    /// Gets or sets the Select Operation value
    /// </summary>
    public static bool SelectOperation { get; set; }

    static OperationHelper() {
    //initialize your static variables here
    }
}

见这里的一个参考static构造函数。



Answer 3:

静态变量仅创建一次。 所以userB将获得该变量的同一个实例来回答你的问题。

更多关于这个已经讨论了这里 。



Answer 4:

你需要考虑的会话会给你不同的值,为每个用户访问站点



文章来源: Static variable Behaviour in Asp.Net