Я только начинаю с Виндзора, поэтому, пожалуйста, будьте осторожны :) У меня есть сценарий, где я хочу, чтобы иметь возможность переопределять/заменять компоненты, размещенные внутри контейнера Windsor. Читайте дальше ...Как я могу переопределить компонент, зарегистрированный в Castle Windsor?
В моем коде prod я хочу иметь возможность зарегистрировать компонент, который реализует базовый класс, и использовать контейнер для разрешения реализации. До сих пор, используя
container.Register(Component.For<LoggerBase>().ImplementedBy<DebugLogger>());
и
container.Resolve<LoggerBase>();
В моих тестах, я хотел бы добавить незавершенная/макет реализации переопределить реализацию «DebugLogger», так что, когда мой прод код вызывает container.Resolve<LoggerBase>();
его получает переопределенную реализацию.
Любые указатели приветствуются!
В версии 3 теперь используется элемент 'IsDefault', позволяющий решить эту проблему. http://stackoverflow.com/questions/9253388/in-castle-windsor-3-override-an-existing-component-registration/9254043#9254043 –