ASP.NET MVC进阶之路:深入理解Controller激活机制并使用Ioc容器创建对象
2016-07-17 23:57
555 查看
本文标题说是"深入理解Controller"其实有点“标题党”的味道了。本篇只会探讨"Controller"的激活机制,也就是如何创建Controller的并调用的。本篇不是讲解Controller底层相关知识,不过后期博文会对其进行介绍。
我们先看DefaultControllerFactory类的几个方法
View Code
如需使用我们自定义的NinjectDependencyResolver,我们需要在Global.asax中对其进行注册:
再次运行我们的程序,则会看到效果。
0X1 DefaultControllerFactory
DefaultControllerFactory对象可以说是Controller创建激活的一个重要类,在默认情况下(这里的默认情况指没有向MVC指定负责创建Controller的类)DefaultControllerFactory负责Controller的创建于激活。本文讨论的重点将会放在Controller的创建。我们先看DefaultControllerFactory类的几个方法
public class NinjectDependencyResolver : IDependencyResolver { private IKernel Kerner; NinjectDependencyResolver() { Kerner = new StandardKernel(); } public void Registet<To, Form>() where Form : To { Kerner.Bind<To>().To<Form>(); } public object GetService(Type serviceType) { return Kerner.TryGet(serviceType); } public IEnumerable<object> GetServices(Type serviceType) { return Kerner.GetAll(serviceType); } }
View Code
如需使用我们自定义的NinjectDependencyResolver,我们需要在Global.asax中对其进行注册:
protected void Application_Start() { //其他操作 NinjectDependencyResolver ninjectDependencyResolver = new NinjectDependencyResolver(); ninjectDependencyResolver.Registet<Controller, Controllers.HomeController>();//这里的Controller应该是具体类型,这里这样写只是为了演示 DependencyResolver.SetResolver(ninjectDependencyResolver); }
再次运行我们的程序,则会看到效果。
相关文章推荐
- asp.net对象——Response、Request
- NET Core环境并创建运行ASP.NET网站
- Mvc多级Views目录 asp.net mvc4 路由重写及 修改view 的寻找视图的规则
- ASP.NET身份认证
- C# WinForm 导出导入Excel/Doc 完整实例教程[使用Aspose.Cells.dll]
- asp.net MVC 应用程序的生命周期
- asp、aspx、php、jsp万能密码大全
- ASP.NET WebForm中用async/await实现异步
- 云服务器下搭建ASP.NET Core环境
- ASP.NET GirdView后台动态绑定数据
- 使用ASP.Net WebAPI构建REST服务(六)——Self-Host
- 使用ASP.Net WebAPI构建REST服务(五)——客户端
- 使用ASP.Net WebAPI构建REST服务(四)——参数绑定
- 使用ASP.Net WebAPI构建REST服务(三)——返回值
- ASP.NET Core开发-使用Nancy框架
- [NET] Begin ASP.NET Core
- 云服务器下搭建ASP.NET Core环境
- 【ASP.NET】asp.net中的对象
- ASP.NET Mvc4整合ExtJS4.2 MVC框架
- 学习ASP.NET