(译)Windsor入门教程---第三部分 编写第一个Installer
简介
在第二部分我们创建了控制器工厂。现在我们要把我们的控制器交给Windsor来管理。
Installer
Windsor有一个专门的类installer.cs,用来向容器注册组件。在你的应用程序中至少会有几个这样的installer类,所以要保持他们的代码整洁以及可见性。接下来在我们的应用程序中新建一个专门的文件夹"Installer"来存放这些类。我们首先要注册到容器中的就是控制器,所以我们先来新建一个ControllersInstaller.cs类。
Controller installer
Installer类需要为Windsor解决两个问题:怎么在应用程序中找到控制器和怎么配置控制器。
第一点,怎样找到控制器?很简单,在ASP.NET MVC中,控制器都是要实现Icontroller接口的。
配置起来很简单,首先,mvc框架要求我们为每一次的请求都创建一个新的控制器实例。而Windsor默认是只有在第一次请求的时候创建实例的。相应的installer类:
这个类重写了IwindsorInstaller的Install方法,通过Windsor的Fluent Registration API注册了控制器。这是我们推荐使用的,也是最简洁、最灵活的方法。每当我们在应用程序中新增加Controller(大的应用里可能会有几百个)的时候,Windsor会自动注册它们,我们不需要手动做任何事情,我们只要遵循Windsor的约定即可。
继续看代码,静态类Classes是进行注册的入口点,首先调用public类型的非抽象方法FromThisAssembly(),这是一个包含注册器的组件(mvc的组件,存在于控制器的生命周期中)。但是我们并不需要注册所有的组件,所以BasedOn<IContorller>过滤器要求类必须实现Icontroller接口,虽然叫BasedOn,但是它同样的也是一个泛型接口。最后是非常重要的一点----instance lifestyle。mvc希望的是使用过后即销毁,但每次Windsor需要的时候要有一个新的实例,而且通知Windsor在什么时候不需要实例,可以回收实例了是调用者的职责所在(这也是为什么我们在WindsorControllerFactory类里重写了ReleaseController方法)。
现在我们已经在Windsor注册了控制器的工作机制,并且有了控制器工厂来将控制器管理从Windsor卸载。在第四部分,我们将把这些组装在一起运行----一个由Windsor支撑的应用。但是在此之前,有一点是必须关注的,那就是测试。
最新文章
- PHP 过滤器
- opendove中的odgw所需要的内核模块
- Asp.Net判断字符是否为汉字的方法大全
- 虚幻4以及DX12将允许开发者利用Xbox One的更多性能(转)
- 有关Transaction not successfully started问题解决的方法
- js调试
- Linux学习笔记之权限与命令之间的关系(重要)及文件与文件夹知识总结
- [Unity] A* pathfinding project integrated with influence map
- 201521123100 《Java程序设计》第9周学习总结
- object类的equals方法简介 &; String类重写equals方法
- 离线Chrome插件安装文件(crx)的安装方法
- 1. 容器化部署一套云服务 第一讲 Jenkins(Docker + Jenkins + Yii2 + 云服务器))
- 视频拉流 Linux安装FFmpeg
- CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-7主节点CM安装子节点Agent配置
- NorFlash 学习
- Mac安装使用MongoDB
- PAT 甲级 1135 Is It A Red-Black Tree
- 自定义安装visual studio 2010开发asp.net
- 使用nvm-windows安装nodejs遇到的问题(转载)
- oracle 转置实现