深入探索ASP.NET MVC自定义功能
1. IoC容器与控制器实例化
在使用IoC容器实例化控制器时,通常只需要为每个请求创建一个临时实例,并在请求生命周期结束时将其释放。不过,自定义控制器类可能会通过IoC注入多个外部对象,例如WCF服务的代理。这些通过IoC注入的对象可能具有不同的生命周期配置(如单例模式)。在 ReleaseController 方法中释放这些对象可能为时过早,从而引发问题。因此,在重写 ReleaseController 方法时需要考虑这一点。
2. 调用操作
当获得控制器实例后, MvcHandler 类会调用控制器的 Execute 方法来执行当前请求。 Execute 方法定义在 IController 接口中,由控制器类实现。实际上, Execute 方法在 ControllerBase 类中实现,其核心逻辑通过受保护的抽象方法 ExecuteCore 暴露:
protected abstract void ExecuteCore()
下面是 Controller 类中 ExecuteCore 方法的源代码:
prot
超级会员免费看
订阅专栏 解锁全文
616

被折叠的 条评论
为什么被折叠?



