In iniezione di dipendenza di Ninject, se si imposta un legame di una classe a se stesso in questo modo:In Ninject, come posso eseguire codice personalizzato su un oggetto dopo che è stato creato con Bind <..> .ToSelf()?
Bind<SomeClass>().ToSelf();
Ninject molto bene risolve eventuali dipendenze SomeClass ha e ti dà l'oggetto indietro. Voglio essere in grado di fare qualcosa al SomeClass che restituisce ogni volta che ne crea uno nuovo, così come un evento di post-elaborazione. Potrei usare il binding .ToMethod (o ToFactoryMethod) per esplicitamente nuovo, ma vorrei che tutte le sue dipendenze fossero risolte da Ninject in anticipo.
E wouldu sarebbe bello fare qualcosa di simile:
Bind<SomeClass>()
.ToSelf()
.After(sc => sc.MethodIWantToCall()); // then after here, Ninject returns the object.
C'è qualche modo per fare questo in Ninject 1.0/1.1?
C'è un problema con l'esecuzione dell'attività che si desidera eseguire nel costruttore? –
Suppongo che non ci sia nulla di sbagliato in questo e questa è la soluzione pratica :) Ma ho pensato che, forse, per test o forse alcuni scenari reali, il MethodIWantToCall() potrebbe essere considerato una parte dell'oggetto * activation *, che Sto andando su Ninject, piuttosto che sull'implementazione. Ma sono d'accordo che forse è un punto secondario. – ZeroBugBounce