Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 21356|Odpowiedź: 1

[Źródło] Efektywny Autofac IoC

[Skopiuj link]
Opublikowano 13.09.2016 13:14:12 | | |
IoC ~ Efektywny Autofac

Nie ulega wątpliwości, że ulubionym kontenerem IoC Microsoftu nie jest spring.net, Unity, lecz Autofac, ze względu na jego efektywność i prostotę, dlatego jest także wykorzystywany w projektach sadowniczych prowadzonych przez Microsoft

ilustruje użycie Autofac.


Nazwijmy to teraz:

W następnym wykładzie opowiem o wykorzystaniu Autofac w konkretnych projektach dotyczących sadów.

Teraz spójrz na jego cykl życia

1、InstancePerDependency

Stwórz nową, unikalną instancję dla każdej zależności lub wywołania. To także domyślny sposób tworzenia instancji.

Oficjalna dokumentacja wyjaśnia: Konfiguruj komponent tak, aby każdy zależny komponent lub wywołanie Resolve() otrzymywało nową, unikalną instancję (domyślnie).

2、InstancePerLifetimeScope

W domenie cyklu życia każda zależność lub wywołanie tworzy jedną wspólną instancję, a dla każdej domeny cyklu życia jest ona unikalna i nie jest współdzielona.

Oficjalna dokumentacja wyjaśnia: Konfiguruj komponent tak, aby każdy zależny komponent lub wywołanie Resolve() w ramach jednego ILifetimeScope otrzymywało tę samą, współdzieloną instancję. Zależne komponenty w różnych zakresach życia będą miały różne instancje.

3、InstancjaDopasowanieZakresu życia

W zidentyfikowanej domenie cyklu życia każda zależność lub wywołanie tworzy jedną wspólną instancję. Instancje w domenie nadrzędnej mogą być współdzielone w domenie tożsamości potomnej zidentyfikowanej domeny cyklu życia. Jeśli w całej hierarchii dziedziczenia nie znaleziono zidentyfikowanej domeny cyklu życia, wyrzucany jest wyjątek: DependencyResolutionException.

Oficjalna dokumentacja wyjaśnia: Konfiguruj komponent tak, aby każdy zależny komponent lub wywołanie Resolve() w obrębie ILifetimeScope oznaczonego dowolnym z podanych tagów otrzymało tę samą, współdaną instancję. Komponenty zależne w zakresach życiowych, które są dziećmi zakresu oznaczonego, będą współdzielić instancję nadrzędnego. Jeśli w hierarchii nie można znaleźć odpowiednio oznaczonego zakresu, rzucany jest wyjątek DependencyResolution.

4、InstancePerOwned

W cyklu życia instancji utworzonej przez instancję należącą do domeny cyklu życia, każdy zależny komponent lub wywołanie metody Resolve() tworzy jedną współdzieloną instancję, a domena dziecka cyklu życia dzieli instancje z domeny cyklu życia nadrzędnego. Jeśli w hierarchii dziedziczenia nie znajduje się odpowiedniej domeny cyklu życia z instancjami potomnymi, wyrzuca się wyjątek: DependencyResolutionException.

Oficjalna dokumentacja wyjaśnia:

Skonfiguruj komponent tak, aby każdy zależny komponent lub wywołanie Resolve() w ramach ILifetimeScope utworzonego przez własną instancję otrzymało tę samą, współdzieloną instancję. Komponenty zależne w zakresach życiowych, które są potomkami zakresu własnej instancji, będą współdzielić instancję nadrzędnego. Jeśli w hierarchii nie można znaleźć odpowiedniego zakresu własnej instancji, wyrzucany jest wyjątek DependencyResolution.

5、SingleInstance

Za każdym razem, gdy polegasz na komponentie lub wywołujesz metodę Resolve(), otrzymujesz tę samą współdzieloną instancję. W rzeczywistości jest to model singleton.

Oficjalna dokumentacja wyjaśnia: Skonfiguruj komponent tak, aby każdy zależny komponent lub wywołanie Resolve() otrzymywało tę samą, współdzieloną instancję.

6、InstancePerHttpRequest

W kontekście żądania HTTP udostępnij instancję komponentu. Dostępne tylko do rozwoju asp.net MVC.





Poprzedni:ActionResult MVC
Następny:ConcurrentDictionary vs. Dictionary+Locking - Dennis Gao
 Ziemianin| Opublikowano 13.09.2016 13:15:50 |
Metoda instalacji nugetów:

Instalacja Autofac

Install-Package Autofac
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com