Mi piacerebbe configurare il contenitore Windsor in modo che una singola istanza in stile singleton possa fornire due o più servizi attraverso il contenitore.Come configurare un'istanza a componente singolo che fornisce più servizi in Castle.Windsor?
Ho riscontrato che l'utilizzo dello stesso tipo in dichiarazioni di più componenti (configurazione basata su XML) comporta la creazione di un'istanza di quel tipo per fornire l'interfaccia di servizio di ciascun componente, che non è il comportamento che desidero.
Ad esempio:
interface IA { }
interface IB { }
class AB : IA, IB { ... }
voglio quella istanza di AB per fornire sia i servizi di IA e IB.
Il motivo specifico per cui voglio farlo è che la mia implementazione DAO concreta estende più interfacce. Il rovescio della medaglia, ho diversi componenti di lavoro che contengono un riferimento a diverse interfacce. L'istanza DAO concreta rispetta questo, ma i costruttori di questi componenti separati dei lavoratori vogliono l'implementazione delle loro interfacce separate e desidero che Castle.Windsor passi la stessa istanza dell'oggetto attraverso questi contenitori worker tramite le rispettive richieste di servizio.
lol, penso che fosse chiaro come fango! : P
Qualcuno capisce cosa intendo, e qualcuno ha qualche idea su come posso ottenerlo attraverso la configurazione XML dei componenti?
Il problema principale con questo è l'utilizzo dell'operatore "nuovo", il che significa che non si utilizza l'autowiring per AB. –
L'ultima riga dovrebbe essere qualcosa come 'container.Register (Component.For() .Instance (ab) .Named (" IBImplementation "));' o otterrai _ComponentRegistrationException: Component AB non può essere registrato. Esiste già un componente con quel nome._ –
Lu55