gpt4 book ai didi

asp.net-mvc - MVC,不再使用 HttpContext.Current "supposed"了吗?

转载 作者:行者123 更新时间:2023-12-02 14:45:08 25 4
gpt4 key购买 nike

某人在帖子中here ,评论说在使用 MVC 时不应该使用 HttpContext.Current,而应该使用 ControllerBase.ControllerContext 。在某些方面,这是有道理的,但在其他方面则不然。

例如,ControllerContext 是一个实例变量,所以在我想要引用的任何地方,比如我的 Session 变量,我都需要引用 Controller?当你仍然可以时,为什么我们“不应该”在 MVC 中使用 HttpContext.Current?是否有一种“适当的”MVC“方式”来获取我的 Session 对象而无需引用 Controller ?

我知道测试方面,由于许多其他地方所述的原因,它更好,但我正在开发一个管理 Session 变量和引用 HttpContext.Current 的项目,我想知道是否有更好的方法来获取我的操作 Session 对象,而不传递对 Controller 的引用。

最佳答案

这主要是因为如果使用HttpContext.Current,单元测试将非常困难,因为使用普通的模拟框架不可能模拟此值。

HttpContext.Current 也会导致更脆弱的代码,因为它可能被滥用和误用。例如,您可以在业务层中使用它,因为它很方便,但如果您选择使用 ASP.NET 之外的替代表示层,它就会崩溃。

一般来说,静态方法现在不受欢迎,因为它们不能依赖注入(inject)

关于asp.net-mvc - MVC,不再使用 HttpContext.Current "supposed"了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9119345/

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