在DI容器中配置时,MVC控制器应该获得什么样的生活方式

Jes*_*seP 2 asp.net-mvc dependency-injection ioc-container inversion-of-control servicestack

我使用Funq工厂自动连接我的MVC控制器,我很好奇他们的终身管理是什么样的.

Ste*_*ven 5

MVC控制器并非设计为线程安全的,因为它们由MVC为其正在处理的请求进行初始化.因此,他们可以拥有的最长的生活方式是按网络要求的生活方式.但是,MVC IControllerFactory每个Web请求只会询问一次控制器,这意味着控制器工厂将始终返回一个新的控制器实例.选择每个网络请求的生活方式会产生正确的结果,但会降低系统的性能,因为缓存控制器不需要.换一种说法:

MVC控制器应该具有短暂的生活方式.