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 ?