ASP.NET MVC:如何创建自己的HttpContext

时间:2010-02-19 20:12:31

标签: asp.net-mvc httpcontext

我的想法是创建自己的HttpContext,其中包含我们的应用程序中使用的一些内部对象。所以我想我会简单地创建

public class FooHttpContextBase : HttpContextBase
{
    public string Foo
    {
        get { return "Boo"; }
    }
}

然后覆盖HttpContext属性:

public abstract class BaseController : Controller
{
    private FooHttpContextBase context;

    public BaseController()
    {
        context = new FooHttpContextBase();
    }

    override public HttpContextBase HttpContext
    {
        get { return context; }
    }
}

但后来我意识到HttpContext不是虚拟的 - 所以它不能被覆盖。

嗯,你有什么建议?在BaseController中添加一些新属性?

提前致谢!

1 个答案:

答案 0 :(得分:-8)

我建议您只需向基本控制器添加一个新属性,该属性将共享您自己的上下文。这是最轻松,优雅,快捷的工作方式 如果您正在使用某些IOC,我建议您为其执行属性注入,有关详细信息,请参阅this link