在Castle Windsor中注册运行时依赖项

时间:2011-05-21 15:07:18

标签: installer castle-windsor ioc-container

在我正在重构的代码中,我有以下情况:

void Plugin(IExternalService service)
{
    var facade = new Facade(
        new ExternalServiceWrapper(service),
        new Dependency1(),
        new Dependency2());
}

其中Dependency1Dependency2IDependency1IDependency2的实现。

如何在Windsor安装程序中将其转换为注册?我似乎无法想象如何将IExternalService的实例传递给容器。

编辑我无法控制插件的创建。我想将它用作组合根来连接所有依赖项。

1 个答案:

答案 0 :(得分:4)

要注册现有实例,可以使用Instance方法:

container.Register(Component.For<IExternalService>().Instance(service));