Sono nuovo su Ninject (e DI in generale).Creazione oggetto postinizializzazione con ninject
capisco come i moduli del kernel carica, e il codice che ho scritto finora tende ad avere una sola riga:
myKernel.Get<MyApp>()
che costruisce tutto quello che serve dalle rilegature nel mio modulo. Se c'è un requisito per le nuove istanze dopo l'inizializzazione, queste sono prese in considerazione dalle fabbriche che eseguo il bind per l'inizializzazione. Fino ad ora, le fabbriche erano libere da ogni dipendenza, semplicemente rinnovando gli oggetti su richiesta.
Ora ho raggiunto un punto che ho bisogno di pensare alla creazione dell'oggetto dopo l'inizializzazione e il mio modello di fabbrica non lo sta più tagliando. Ciò dovrebbe supportare un'interfaccia pub/sub per i client (remoti). Con ogni nuova connessione al mio server, vorrei creare nuove istanze IClient
in base a una serie di collegamenti definiti in un modulo ninject. Questo significa che la factory che passo al momento dell'inizializzazione deve avere il proprio kernel (o un riferimento al kernel principale)? Dove sarebbe CommonServiceLocator in questo. È necessario CSL?
Prima di viaggiare troppo lontano, ho pensato che sarebbe meglio chiedere qui come altri potrebbero affrontare questo problema.
Grazie Remo. Quindi, se ho capito bene, in 2.3 non devi preoccuparti di creare un'implementazione concreta dell'interfaccia di fabbrica? L'implementazione effettiva viene emessa in qualche modo da ninject quando viene utilizzata una chiamata 'ToFactory()'? – spender
Sì, è stato implementato automaticamente utilizzando il proxy dinamico –
Nice. Grazie per l'aiuto. Risolve un sacco di domande nella mia testa. – spender