【问题标题】:Difference between IWindsorInstaller and AbstractFacility in CastleCastle 中 IWindsorInstaller 和 AbstractFacility 的区别
【发布时间】:2011-03-04 21:01:14
【问题描述】:

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

它看起来和我很相似,我想知道两者之间有什么区别以及应该在哪里使用哪个。

【问题讨论】:

    标签: .net castle-windsor


    【解决方案1】:

    丹,

    区别如下:

    • 安装程序旨在封装离散的注册单元。换句话说,您使用安装程序在容器中注册应用程序组件。 有一些帮助程序,例如 Configuration 类或 FromAssembly 类,您可以使用它们来使用配置文件,或自动发现您的安装程序并一次性运行它们,因为在大多数应用程序中您将拥有其中的几个。
    • 设施旨在增强容器的开箱即用功能。所以你有(使用标准设施作为例子)像TypedFactoryFacility 这样的东西,它增加了自动创建工厂以透明地从容器中提取组件的能力。您有StartableFacility,它允许组件启动/停止,而无需您明确担心。您还可以使用 NHibernate、WCF、Monorail 或 ASP.NET MVC 等集成工具,让 Windsor 了解与它一起使用的其他框架的某些方面,从而使您的工作更轻松。在功能方面,设施可以有自己的配置。也没有帮助批量添加功能的工具,因为在大多数应用中您只需要几个。

    它们都可以注册内容,但主要区别在于 - 安装程序注册您的应用程序需要的任何内容(包括添加设施)。另一方面,设施会记录他们完成工作所需的内容。

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

    安装程序注册的应用程序级组件最好完全不了解容器。

    希望这可以使区分更加清晰。

    【讨论】:

      猜你喜欢
      • 2013-09-25
      • 1970-01-01
      • 2010-12-06
      • 2010-09-10
      • 2018-09-05
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 2011-02-17
      相关资源
      最近更新 更多