/ / Kedy sa aktivuje funkcia Ninject's OnActivation? - ninjekt

Kedy začne spoločnosť Onject aktivovať Ninject? - nijaké injekcie

Som si istý, že je to hlúpa otázka, pretože predpokladám, že odpoveď znie: „Keď je objekt inštancovaný Ninjectom“ ... ale chcem skontrolovať dvakrát ...

Dať trochu viac kontextu, prečo sompoložením otázky, mám aplikáciu asp mvc, ktorá implementuje aplikáciu NinjectHttpApplication. V rámci prepísania OnApplicationStarted však musím aktivovať metódu na inštancii singleton, ktorá je viazaná v rámci Ninject.

Problém je v tom, že jadro je vystavené, alenemal by sa používať ako lokátor služieb, takže by som z toho mohol objekt získať späť a zavolať metódu DoSomeSetup (); ale zdá sa to ako zlyhanie. Pokiaľ viem, inštancia NinjectHttpApplication nie je DI ako súbor Global.asax. používa priamo, takže som to nemohol DI do aplikácie týmto spôsobom.

To mi ponecháva jednu ďalšiu možnosť, ktorá by bolabyť pridaním OnActivation (x => x.DoSomeSetup ()); volanie na väzbu, tento objekt sa však používa iba na určitých miestach, takže nie je to pri prvom načítaní stránky, ktoré by vyžadoval ovládač, takže ak služba OnActivation čaká na vytvorenie prvej inštancie, nemusí sa stať chvíľa.

Dúfajme, že to nie je príliš mätúce :)

odpovede:

2 pre odpoveď č. 1

Áno, váš predpoklad je správny (alebo aspoň väčšinou správny). Aktivačné akcie sa spustia pri prvom riešení inštancie, aj keď nie sú vytvorené pomocou Ninject (napr. Constants).

Pre aplikáciu HttpApplication môžete mimochodom použiť injekciu majetku.