我一直在使用工具来注册我的组件,但注意到了 IWindsorInstaller。
它对我来说看起来很相似,我想知道两者之间有什么区别以及应该在哪里使用哪一个。
Dan,
区别如下:
- 安装程序旨在封装离散的注册单元。换句话说,您使用安装程序来注册应用程序组件在容器中。
有类似的帮助者
Configuration
类,或FromAssembly
您可以使用该类来使用配置文件,或者自动发现您的安装程序并一次性运行它们,因为在大多数应用程序中您都会有多个安装程序。
- 设施旨在增强容器的开箱即用功能。所以你有(使用标准设施作为例子)类似的东西
TypedFactoryFacility
这增加了自动创建工厂以透明地从容器中提取组件的能力。你有StartableFacility
这使得组件可以开始/停止无需您明确担心它。您还可以使用 NHibernate、WCF、Monorail 或 ASP.NET MVC 等集成工具,使 Windsor 能够了解与其配合使用的其他框架的某些方面,从而使您的工作更加轻松。在功能方面,设施可以有自己的配置。也没有帮助程序来批量添加设施,因为在大多数应用程序中您只需要几个。
它们都可以注册东西,但主要区别是 - 安装程序注册您的应用程序需要的任何内容(包括添加设施)。另一方面,设施则登记其完成工作所需的内容。
这通常意味着设施将扩展注册到容器,例如自定义解析器、ComponentModel 构造贡献者或拦截器 - 根据定义,这些东西可以识别容器。
安装程序注册应用程序级组件,这些组件最好完全不了解容器。
希望这能让区别更加清晰。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)