我收到了“https://www.youtube.com/watch?v=SIs7ZsMCUWA&t=327s”
中的链接我想从aspx改为winform
问题:
在aspx中
protected void Page_Load(object sender, EventArgs e)
{
if (Session["TokenQueue"] == null)
{
Queue<int> queueTokens = new Queue<int>();
Session["TokenQueue"] = queueTokens;
}
}
protected void btnPrinToken_Click(object sender, EventArgs e)
{
Queue<int> tokenQueue = (Queue<int>)Session["TokenQueue"];
lblStatus.Text = " Terdapat " + tokenQueue.Count.ToString() + " Antrian ";
if (Session["LastTokenNumberIssued"] == null)
{
Session["LastTokenNumberIssued"] = 0;
}
int nextTokenNumberTobeIssued = (int)Session["LastTokenNumberIssued"] + 1;
Session["LastTokenNumberIssued"] = nextTokenNumberTobeIssued;
tokenQueue.Enqueue(nextTokenNumberTobeIssued);
AddTokensToListBox(tokenQueue);
}
c#中的无法读取会话?
Session [“TokenQueue”] = queueTokens;
如何在c#winform中使用会话?
答案 0 :(得分:0)
会话通常有助于我们在Web应用程序中跨多个页面维护用户的信息。当您将任何Web应用程序转换为Windows应用程序时,您需要了解Web应用程序的某些方面。会话在大多数Web应用程序框架中都很常见。您可以通过任何语言的静态变量实现相同的行为。在C#中,您可以创建一个类来保存静态变量中的此类信息,例如
internal static class SESSIONWINFORM
{
public static string TokenQueue = string.Empty;
public static DateTime LastLogin = DateTime.MinValue;
// more variables as you needed
}
然后在Windows应用程序的特定事件中分配这些变量值,例如在login方法中,以保存登录时间,如下所示
protected bool login(string username, string password) {
if (succesfullLogic)
{
SESSIONWINFORM.LastLogin = DateTime.Now;
....
}
}
并在Label1中向用户显示他最后一次登录WinForm。您可以像这样设置文本
Label1.Text = SESSIONWINFORM.LastLogin;
答案 1 :(得分:0)
由于Windows应用在用户上下文中运行,因此您不需要会话。总有一个用户。
我建议将变量变为静态变量,因为它确实在会话的生命周期内共享,就像在ASP.NET中一样。如果您在Winforms项目中创建Session
类并模仿会话行为,该怎么办?这样可以更轻松地在项目之间交换代码。