ASP.NET MVC控制器生命周期如何实现?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (50)

我的理解是控制器的构造函数在每个Web请求期间都没有被调用。假设这是事实,控制器的生命周期是什么?Is是在应用程序启动时“构建”的,然后使用每个Web请求注入的requestcontext进行缓存和调用?

为了清楚起见,我没有问如何模拟构造函数行为,我使用OnActionExecuting事件来启动我通常在构造函数中执行的操作。另外,我还使用控制器上的构造函数进行单元和系统测试。

提问于
用户回答回答于

如果使用默认控制器工厂,则会为每个请求构造一个新实例,这是它应该的方式。控制器不应该在不同的请求之间共享。你可以写一个自定义工厂来管理控制器的生命周期。

用户回答回答于

恐怕,你的理解是错误的。一个控制器(应该是一个非常轻薄的类,并且不能有任何会话退出状态)实际上是为每个Web请求而动态构建的。控制器实例如何才能针对某个视图特定?

所以没有像“生命周期”那样的东西(除了请求的)...

扫码关注云+社区