Я хотел бы настроить контейнер Windsor так, чтобы один экземпляр в стиле singleton мог предоставлять две или более служб через контейнер.
Я обнаружил, что использование одного и того же типа в нескольких объявлениях компонентов (конфигурация на основе XML) приведет к созданию экземпляра этого типа для обеспечения интерфейса службы каждого компонента, что не является желаемым поведением.
Например:
interface IA { }
interface IB { }
class AB : IA, IB { ... }
Я хочу, чтобы один экземпляр AB предоставлял услуги как IA, так и IB.
Конкретная причина, по которой я хочу это сделать, заключается в том, что моя конкретная реализация DAO расширяет несколько интерфейсов. С другой стороны, у меня есть несколько рабочих компонентов, которые содержат ссылки на разные интерфейсы. Конкретный экземпляр DAO уважает это, но конструкторы этих отдельных рабочих компонентов хотят реализовать свои отдельные интерфейсы, и я хочу, чтобы Castle.Windsor передавал один и тот же экземпляр объекта этим рабочим контейнерам через соответствующие служебные запросы.
лол, я думаю, это было ясно как грязь! :П
Кто-нибудь понимает, что я имею в виду, и есть ли у кого-нибудь идеи, как я могу добиться этого с помощью конфигурации XML для компонентов?