Ho probabilmente una semplice domanda su Castle Windsor, che non uso da molto tempo. Sto cercando di registrare un servizio con un'istanza specifica che sarà l'implementazione singleton del servizio.Specificare l'istanza per la registrazione di un componente con Castle Windsor
Il contenitore non può provare a creare l'implementazione del servizio stesso perché ha dipendenze che il contenitore non sarà in grado di risolvere. Ho un'istanza del servizio e voglio che sia l'unica istanza utilizzata per chiunque richieda il servizio. Ma mi sembra che abbia molta poca fortuna.
ho momentaneamente avevo speranze sollevate utilizzando questo codice:
container.Register(Component.For<IMyInterface>().Instance(serviceObj));
Ma tutto Castello fa con l'istanza è fare un .GetType() su di esso e registrare il tipo. Le richieste per il servizio causeranno successivamente al contenitore di provare a creare quel tipo e fallire quando non è in grado di riempire le dipendenze.
Quindi c'è un modo per fare ciò che voglio fare qui? In caso contrario creerò una sorta di IServiceProvider che recupera l'istanza del servizio e non ha alcuna dipendenza per il contenitore da compilare. Ma questo sembra più un lavoro che la soluzione giusta.
Qualche suggerimento? Grazie!
Grazie Gerrie e Bojan! Ha funzionato a meraviglia. –
Come una breve nota, questa tecnica è ora deprecata. Usa 'container.Register (Component.For() .Instance (myT)) ;, invece. –
eouw0o83hf
Questo collegamento è anche inattivo ora – Liam