I have abstract BaseController, which basically looks like below:
public abstract class BaseController : Controller
{
    public IDisposable Resource { get; protected set; }      
    protected override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        if(Resource != null)
        {
            Resource.Dispose();
        }
        var baseController = filterContext.Controller as BaseController;
        if (baseController != null && baseController.Resource != null)
        {
            baseController.Resource.Dispose();
        }
    }
}
Inside OnActionExecuted event, I want to dispose Resource object. Is it enough to execute Dispose on Resource ? Do I have to check also for Resource in the Controller from filterContext ?
In debugger in my case that this is the same object, but is it always the same one ? What is it used for ?
 
     
     
    