在具有多种不同配置的企业解决方案中使用依赖注入容器

时间:2010-03-09 12:42:03

标签: dependency-injection castle-windsor

在你需要不同配置集的场景中,有人能指出一些关于如何最好地管理DI容器配置的文档/代码示例吗?

我们有一个分层的,分布式的应用程序,有多个入口点(即;一个网站,winforms应用程序,办公室插件等)。根据您使用解决方案的方式(例如,通过UI与自动化工作流程),需要稍微不同地配置。

我们正在使用Windsor,它具有流畅的配置功能。<​​/ p>

2 个答案:

答案 0 :(得分:1)

每个应用程序应该有一个容器,因此在该级别,您必须单独为每个应用程序配置每个容器。

但是,为一系列应用程序提供通用基本配置是正常的要求,并且大多数DI容器通过提供一种可以打包配置的方式来支持它。

在Castle Windsor中,您可以通过定义一个或多个实现IWindsorInstaller接口的类来实现此目的。

示例:

public class MyWindsorInstaller : IWindsorInstaller
{
    public void Install(IWindsorContainer container, IConfigurationStore store)
    {
        container.AddComponent<IFoo, Foo>();
        // etc.
    }
}

答案 1 :(得分:0)

我们通过使用XML配置文件来支持“多配置”情况。如果您准备好放弃流畅的配置,那么XML配置文件集非常简单易于管理和部署。