Sok könyv említ olyan fogalmakat, mint a függőségi injekció és a kontrollinverzió, amelyek mind lazán összekapcsolt rétegek, komponensek és osztálycélok elérésére irányulnak.
Gyakori, hogy a Repository osztályt használják a vezérlő és a Model közötti közvetlen kapcsolat elkülönítésére. Ahhoz, hogy megszakítsuk a Repository osztály és a vezérlő közötti szoros kapcsolatot, azt általában nem közvetlenül definiálja és idézi elő a Repository class, hanem a Controller konstrukciós módszerén keresztül bejuttatják a megadott Repository-ba.
Népszerű IoC konténerek: Ninject, Autofac, Unity.
Íme egy rövid magyarázat az Autofac injekciós MVC5 és Webapi2 használatáról.
1. Használd a nupkg-t az Autofac, Autofac.Mvc5 és Autofac.Webapi2 hivatkozására.
PM> install-package autofac -verzió 3.5.0
PM> install-package autofac.mvc5
PM> install-package autofac.webapi2 (Megjegyzés: Ha webapi2-t használsz a projektedben, itt webapi2-nek kell lennie, nem webapi-nak, különben futásidőben megjelenik a "Rewrite member Autofac.Integration.WebApi.AutofacWebApiDependencyResolver.BeginScope()" jelenik meg) megsértette az öröklési biztosítéki szabályokat. A felülírt metódus biztonsági hozzáférhetőségének meg kell egyeznie az újraírt módszer biztonságos hozzáférhetőségével. Tévedés. )
2. Regisztrálja az alkatrészt.
3. Készíts egy konténert későbbi használatra.
var container=builder. Build(); 4. Hozz létre egy életre szóló távcsőt a Konténerből.
5. Használd ezt az Élettartam Hatókört az összetevők példányainak elemzésére.
konfiguráció. DependencyResolver = új AutofacWebApiDependencyResolver(container); API konténer regisztrálásához a HttpConfiguration objektumot kell használni DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); Regisztrálni az MVC konténert 6. A WebApiConfig osztály Register metódusában hívjuk meg a fenti lépéskódot, és adjuk be a HttpConfiguration objektumot.
Az autofac előnye, hogy egyszerre leválasztható konfiguráció nélkül; az autofac jobban megvalósítja azt a koncepciót, hogy "a konvenció nagyobb, mint a konfiguráció" az MVC-ben.
|