Зарегистрировать зависимость времени выполнения в Castle Windsor - PullRequest
1 голос
/ 21 мая 2011

В коде, который я занимаюсь рефакторингом, у меня следующая ситуация:

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

Где Dependency1 и Dependency2 являются реализациями IDependency1 и IDependency2.

Как я могу преобразовать это в регистрацию в установщике Windsor?Я не могу понять, как передать экземпляр IExternalService в контейнер.

EDIT Я не контролирую создание плагина.Я хотел бы использовать его как корень композиции для связывания всех зависимостей.

1 Ответ

4 голосов
/ 21 мая 2011

Чтобы зарегистрировать существующий экземпляр, вы можете использовать метод Instance:

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