在我正在重构的代码中,我有以下情况:
void Plugin(IExternalService service)
{
var facade = new Facade(
new ExternalServiceWrapper(service),
new Dependency1(),
new Dependency2());
}
其中Dependency1
和Dependency2
是IDependency1
和IDependency2
的实现。
如何在Windsor安装程序中将其转换为注册?我似乎无法想象如何将IExternalService
的实例传递给容器。
编辑我无法控制插件的创建。我想将它用作组合根来连接所有依赖项。
答案 0 :(得分:4)
要注册现有实例,可以使用Instance方法:
container.Register(Component.For<IExternalService>().Instance(service));