城堡中IWindsorInstaller和AbstractFacility之间的区别

Dan*_*Dan 10 .net castle-windsor

我一直在使用工具来注册我的组件,但注意到了IWindsorInstaller.

它看起来与我相似,我想知道两者之间的区别是什么,应该在哪里使用.

Krz*_*mic 19

担,

区别在于:

  • 安装程序旨在封装离散的注册单元.换句话说,您使用安装程序在容器中注册应用程序组件.还有对于像助手Configuration类或FromAssembly类,您可以使用要么使用配置文件,或自动发现你的安装和一气呵成运行它们,因为在大多数的应用程序,你将有几个人.
  • 设施旨在增强容器的开箱即用功能.因此,您(使用标准工具作为示例)TypedFactoryFacility可以添加自动创建工厂的能力,从而透明地从容器中提取组件.您StartableFacility可以不必明确担心的情况下启动/停止组件.您还可以使用NHibernate,WCF或Monorail或ASP.NET MVC等集成工具,使Windsor了解其工作的其他框架的某些方面,以便您的工作更轻松.在功能方面,设施可以有自己的配置.批量添加工具也没有助手,因为大多数应用程序只需要几个.

他们两个都可以注册东西,但主要的区别是 - 安装程序注册你的应用程序需要的任何东西(包括添加设施).另一方面,设施注册他们需要的工作.

这通常意味着设施注册容器的扩展,如自定义解析器,ComponentModel构造贡献者或拦截器 - 根据定义,它们知道容器.

安装人员注册最不了解容器的应用程序级组件.

希望能使区别更加清晰.