gpt4 book ai didi

c# - 将 session 和响应对象传递给类 - 开销?

转载 作者:行者123 更新时间:2023-11-30 22:33:39 25 4
gpt4 key购买 nike

我想知道是否有人可以帮助我了解我正在做的事情是否有很多开销。它目前正在运行,但我不确定这是否会降低网站速度。我有一个 workflowobj 类,我在其中设置了所有 session 变量。此类在需要它的页面上实例化:

WorkFlowObj wfo = new WorkFlowObj(this.Session, this.Response);wfo.VendorRedirect();

我需要这个,因为我需要能够跟踪 session 变量,同时能够在一个地方跟踪更复杂的页面工作流。这个解决方案已经适用于我,但唯一的问题是我不确定传递 session 和响应对象是否会产生大量开销。谁能告诉我这是否非常低效?下面是 workflowobj 类的代码。

    public class WorkFlowObj
{
private System.Web.SessionState.HttpSessionState _pagesession;
private HttpResponse _HttpResponse;

private int _userid;
private string _vendorname;
///private other vars here
}
public int UserID
{
get
{
return _userid;
}
}


public WorkFlowObj(System.Web.SessionState.HttpSessionState pagesession, HttpResponse _response)
{
_pagesession = pagesession;
_HttpResponse = _response;
Initialize();

}

private void Initialize()
{
//initialize variables from session
_userid=_pagesession["userid"].ToString();
}


public void VendorRedirect()
{
switch (this._vendorname)
{

case "1":
this._HttpResponse.Redirect(page1);
break;
case "2":
this._HttpResponse.Redirect(page2);
break;
//etc
default:
//dostuff;
break;
}
}
}

最佳答案

正如 Rick 所说,如果可以避免,我不会在中间层对象中创建对 System.Web 的依赖项。

但如果您无法避免,您可以通过使用静态 System.Web.HttpContext 类来避免传递 Session 对象。这使您可以执行以下操作:

userid = (String)System.Web.HttpContext.Current.Session["userid"];

只要它与来自浏览器的请求在同一线程上执行(因此在同一上下文中)。

关于c# - 将 session 和响应对象传递给类 - 开销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8217648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com