1. Rozwiązywanie zależności przez interfejsy
Code:
2. Tworzenie typu bez rejestracji go w kontenerze
Jeżeli chcemy stworzyć instancję klasy nie musimy jej wcześniej rejestrować w kontenerze Unity wystarczy napisać:
Code:
Jeżeli konstruktor klasy Person zależałby od interfejsu ILogger, w momencie tworzenia obiektu Unity stworzyłby instancję Loggera (zarejestrowanego wcześniej).
3. Tworzenie singletonu
Jeżeli chcemy mieć możliwość tworzenia jednej instancji klasy - singletonu - wystarczy podczas rejestracji typu jako argument przesłać nową instancję klasy ContainerControlledLifetimeManager:
Code:
4. Rejestracja nazwanych typów
Czasami mamy potrzebę rejestrowania nazwanych typów np. SqlLogger oraz ApplicationLogger. W Unity możemy łatwo zrealizować ten scenariusz:
Code:
Jeżeli w metodzie Resolve podamy nazwę - otrzymamy żądaną instancję nazwaną klasy. Dzięki metodzie ResolveAll możemy pobrać wszystkie zarejestrowane klasy implementujące dany interfejs.
5. Rejestrowanie istniejących obiektów
Jeżeli chcemy zarejestrować istniejący obiekt w kontenerze korzystamy z metody RegisterInstance:
Code:
Oczywiście obiekt zostanie zarejestrowany w tym momencie jako singleton.
6. Wstrzyknięcie zależności - właściwości
Jeżeli chcemy do stworzonego obiektu wstrzyknąć zależności np. rozważmy klasę:
Code:
wystarczy wskazać konkretny obiekt i skorzystać z metody BuildUp:
Code:
Przedstawione tutaj metody to część z możliwości które oferuje Unity. Pozostałe możliwości można znaleźć w manualu dostarczonego do biblioteki.
Brak komentarzy:
Prześlij komentarz