gpt4 book ai didi

class - MVC 5 - Controller 处置方法

转载 作者:行者123 更新时间:2023-12-04 19:04:59 25 4
gpt4 key购买 nike

我正在开发一个 MVC 5 互联网应用程序。我的 Controller 中有以下方法:

protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}

如果我在这个 Controller 中有一个服务类,它使用相同的 db对象,我需要有一个 Dispose()此服务类中的方法,或者 Dispose() Controller 中的方法处理这个?

提前致谢。

最佳答案

一般来说:类(class)应该处理它负责的任何一次性用品。责任本质上归结为它是否“拥有”依赖。换句话说,如果它是该类上的一个字段并且该类实例化了它,那么它也应该处理它。

对于您的服务,虽然服务类上可能有一个上下文字段,但您通过构造函数将上下文注入(inject)服务,而不是让服务实例化它。因此,服务处理上下文是不合适的,因为它不“拥有”它。

此外,如果您要使用依赖注入(inject)容器,使得 Controller 不再实例化上下文,而只是将其注入(inject)到其构造函数中,那么您也不应该在 Controller 中处理它。 DI 容器最终将负责处置。

关于class - MVC 5 - Controller 处置方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27483524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com