views:

313

answers:

1

Hello .NET gurus,

My idea was to create my own HttpContext which will include some of the internal objects used in our app. So I thought I will simply create

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

And then override HttpContext property:

public abstract class BaseController : Controller
{
    private FooHttpContextBase context;

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

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

But then I've realized HttpContext is not a virtual - so it cannot be overridden.

Well, what do you suggest? Add some new property into the BaseController?

Thanks in advance!

A: 

Please, stop this mental masturbation. I recommend you just add a new property to your base controller that will share your own context. It's the most easy, elegant and fast way to do the job.
If you are using some IOC, I recommend you to do a property injection for it, see this link for details.

zihotki
Yes, if this is the best way how to do that then it's ok for me.
palig