gpt4 book ai didi

.net - 在 ASP.NET MVC 中使用 HttpContext.Current.Session 测试一个类

转载 作者:行者123 更新时间:2023-11-28 19:49:25 24 4
gpt4 key购买 nike

我正在向内部使用 HttpContext.Current.Session 的类添加一些测试,并且我们正在移植到 ASP.NET MVC。我的类(class)看起来像这样:

class Foo
{
public void foo()
{
HttpContext.Current.Session["foo"] = "foo";
}
}

我想这样改:

class Foo
{
IHttpSessionState session;

public Foo() : this(HttpContext.Current.Session) {}

public Foo(IHttpSessionState session)
{
m_session = session;
}

public void foo()
{
m_session["foo"] = "foo";
}
}

问题出在默认构造函数上。我无法通过旧类,因为它们没有实现新的 ASP.NET MVC 接口(interface)。

有没有在默认构造函数中获取实现IHttpSessionState的实例?

谢谢

最佳答案

试试这个,它使用了 MVC 框架使用的 IHttpSessionState 包装器。

class Foo
{
// member variable set by constructor
IHttpSessionState m_session;

// if no session is passed it attempts to create a new session state wrapper from the current session
public Foo() : this(new HttpSessionStateWrapper(HttpContext.Current.Session)) {}

public Foo(IHttpSessionState session)
{
m_session = session;
}

public void foo()
{
m_session["foo"] = "foo";
}
}

关于.net - 在 ASP.NET MVC 中使用 HttpContext.Current.Session 测试一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/476846/

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