2016-11-20 4 views
1

Я изучал замок Виндзор документацию и существующие темы в StackOverflow примыкает разрешение зависимостей, используя этот контейнер, но я до сих пор не получил это возможно (и если это то как?):замок Виндзор несколько услуг регистрации

1) зарегистрировать несколько реализаций интерфейса, например, так:

  container.Register(Component.For<IWait<IWebDriver>>().UsingFactoryMethod(ctx => SmallWait)); 
      container.Register(Component.For<IWait<IWebDriver>>().UsingFactoryMethod(ctx => MediumWait)); 
      container.Register(Component.For<IWait<IWebDriver>>().UsingFactoryMethod(ctx => LongWait)); 

`

и использовать только разрешить его с помощью ResolveAll или получать его автоматически в параметре конструктора или области IEnumerable<T>.

2) удалить регистрацию компонента из контейнера?

ответ

3
  1. Да, это возможно, вам нужно предоставить им уникальные идентификаторы, но через .Named().
  2. Нет, отказ от регистрации не поддерживается. Это может быть инстинктивным ответом на некоторые проблемы, но это никогда не бывает правильным.
Смежные вопросы