相关疑难解决方法(0)

静态范围多用户ASP.NET Web应用程序中的变量

静态变量是否在用户会话中保留其值?

我有一个ASP.NET Web应用程序,我有两个按钮.一个用于设置静态变量值,另一个用于显示静态变量值.

namespace WebApplication1
{   

public partial class WebForm1 : System.Web.UI.Page
{
    public static int customerID;

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void ButtonSetCustomerID_Click(object sender, EventArgs e)
    {
        customerID = Convert.ToInt32(TextBox1.Text);
    }

    protected void ButtonGetCustomerID_Click(object sender, EventArgs e)
    {
        Label1.Text = Convert.ToString(customerID);
    }
}

}
Run Code Online (Sandbox Code Playgroud)

虽然这适用于单用户环境,但如果有两个用户同时从两台计算机登录,会发生什么情况,用户1将值设置为100,然后用户2将值设置为200.之后用户1调用"获取值"按钮.他认为什么是价值?

c# asp.net static

47
推荐指数
2
解决办法
5万
查看次数

是引用该库的所有进程共享的库(DLL)中的静态变量吗?

我知道Web应用程序中使用的静态变量是为Web应用程序中的所有用户共享的.如果我有一个使用某个静态私有变量的库(DLL),那么使用该库的所有应用程序是否共享该变量的值?

例如,假设我的DLL中有以下代码:

private static bool isConnected = false;

public static void Connect()
{
    // TODO: Connect.
    isConnected = true;
}

public static void Disconnect()
{
    // TODO: Disconnect.
    isConnected = false;
}
Run Code Online (Sandbox Code Playgroud)

然后,在应用程序A,我把myDLL.Connect()它设置的值isConnectedTrue.然后我有一些应用程序B执行相同的操作.如果应用程序稍后调用myDLL.Disconnect(),并应用B见isConnectedFalse,因为这两个应用程序共享同一个静态变量相同的DLL文件?在这种情况下,DLL文件在同一文件路径中实际上是相同的文件.

(我之前在这里问了一个关于Web应用程序的类似问题.它没有关系.)

c# dll static static-variables static-libraries

21
推荐指数
1
解决办法
6014
查看次数

标签 统计

c# ×2

static ×2

asp.net ×1

dll ×1

static-libraries ×1

static-variables ×1