Jestem nowy dla Ninject (i DI w ogóle).Tworzenie obiektu po inicjalizacji z ninject
rozumiem, w jaki sposób ładuje moduły jądra, a kod pisałem do tej pory wydaje się mieć jeden wiersz:
myKernel.Get<MyApp>()
który konstruuje wszystko co potrzeba z wiązaniami w moim module. Jeśli istnieje zapotrzebowanie na nowe instancje po inicjalizacji, są one obsługiwane przez fabryki, które wiążę w celu zainicjowania. Do tej pory fabryki były wolne od wszelkich zależnych od ninja zależności, po prostu zmieniając obiekty na żądanie.
Teraz dotarłem do punktu, w którym muszę się zastanowić nad tworzeniem obiektów po inicjalizacji, a mój własny wzorzec fabryczny już go nie przycina. Byłoby to wsparcie dla interfejsu pub/sub dla (zdalnych) klientów. Przy każdym nowym połączeniu z moim serwerem chciałbym utworzyć nowe instancje IClient
zgodnie z zestawem powiązań zdefiniowanym w module ninject. Czy to oznacza, że fabryka, którą przekazuję przy inicjalizacji, musi mieć własne jądro (lub ref do głównego jądra)? Gdzie będzie funkcja CommonServiceLocator w tym. Czy CSL jest niezbędny?
Zanim przejdę za daleko w ślepy zaułek, pomyślałem, że najlepiej będzie zapytać tutaj o to, jak inni mogą podejść do tego problemu.
Dzięki Remo. Więc jeśli dobrze rozumiem, w 2.3 nie musisz się martwić o stworzenie konkretnej implementacji interfejsu fabrycznego? Rzeczywista implementacja jest emitowana w jakiś sposób przez ninject, gdy jest związana za pomocą wywołania 'ToFactory()'? – spender
Tak, zaimplementowane automatycznie przy użyciu dynamicznego proxy –
Nice. Dzięki za pomoc. Oczyszcza mi wiele pytań w mojej głowie. – spender