Castle Windsor介绍

介绍

  1. Castle最早在2003年诞生于Apache Avalon项目,目的是为了创建一个IOC(控制反转)框架。发展到现在已经有四个组件了,分别是ActiveRecord(ORM组件),Windsor(IOC组件),DynamicProxy(动态代理组件),MonoRail(Web MVC组件)。
  2. 中文文档地址
  3. GitHub地址

Ioc和Ioc容器

  1. Inversion of Control控制反转,即开发者使用api和调用api代码相反。
  2. IoC容器使用上面所述的(简言之)原则管理类。包括,它们的创建,销毁,生命期,配置和依赖关系。这样类并不需要获取并配置它们所依赖的类。这在系统中极大地减少了耦合,并且简化了重用和可测试性。

三要素

  1. 服务
  2. 组件
  3. 依赖

Castle Windsor介绍

组件如何创建

1.组成

  • 容器注册组件后,定位处理器

检查所请求的组件是否被注册 容器中,就是我们平时有没有把实现类和接口注册到容器中!
没找到的话会尝试延时注册,要是还是没有找到,抛出异常,ComponentNotFoundException

  • 处理器invoke dynamic parameters
  • 生命周期方式管理

控制组件激活器

  • 组件激活

内部activator动态创建实例ComponentCreated,返回到生命周期管理器中
Castle Windsor介绍
Castle Windsor介绍

调用模式

在应用中只需要在三个地方调用容器,准确的说是在项目的入口处和出口处:
项目入口指的是.exe中的Program.Main 方法,web应用中的 Application_Start 和 Application_End 或 其他类型应用的对应地方。

  1. Install    --创建并配置安装器,以便可以在容器中注册组件。
  2. Resolve --通过类型或名称来解析服务。
  3. Dispose  --容器管理组件的整个生命期,在关闭应用之前需要关闭容器,关闭容器之前会停用它管理的所有组件(比如回收它们)。这就是为什么在关闭应用之前调用container.Dispose()是如此重要。

Castle Windsor介绍

上一篇:spring与mybatis三种整合方法


下一篇:[经验栈]C#中几种定时器(timer)的区别