这是一个小问题,只是为了确保我正确理解Unity。
我正在一个ASP.NET MVC应用程序中使用Unity,并已经如下注册了类型:
container.RegisterType<IPizzaService, PizzaService>();
我正在控制器中使用它,类似于:
public class PizzaController : Controller
{
private IPizzaService _pizzaService;
public PizzaController(IPizzaService pizzaService)
{
_pizzaService = pizzaService;
}
[HttpGet]
public ActionResult Index()
{
var pizzasModel = _pizzaService.FindAllPizzas();
...
}
}
每次发出页面请求时,都会注入并使用
IPizzaService
的新实例。因此这一切都可以正常工作。我的问题是:我需要做什么特殊的事情来处理这个实例?我认为,一旦请求结束,控制器就会被销毁并且 PizzaService 实例最终会被垃圾收集。
如果我需要确定性地处理一个实例,因为它使用了实体框架上下文或未受管理的资源,例如,我必须重写控制器的 Dispose 方法,并确保自己调用实例的 dispose。
对吧?如果不是,请解释一下为什么 :)
谢谢!