Vejledning om ASP.NET Core Dependency Injection, Control Inversion (DI IOC):
Anmeldelse:
Afhængighedsinjektion i en nøddeskal:
Afhængighedsinjektion (DI) er en teknik, der implementerer løs kobling mellem et objekt og dets samarbejdspartnere eller afhængigheder. Giv disse objekter, som klassen bruger til at udføre sine operationer over for klassen på en eller anden måde, i stedet for direkte at instansiere samarbejdspartnere eller bruge statiske referencer.
ASP.NET Core DI bruger generelt konstruktørinjektion til at opnå objekter, for eksempel efter konfiguration af ConfigureServices-injektionen, kan den opnås på følgende måder:
Hvad hvis du manuelt henter injektionsobjektet?
Den første måde at få det på(Nogle gange kan du ikke få det,Ikke anbefalet):
Den anden måde at få det på(Anbefalet brug):
Bemærk: Det skal bemærkes, at brugen af ServiceLocator.Instance.GetService<T>(); ,Kun objekter injiceret af AddTransient og AddSingleton kan hentes, og kan ikke opnå det injicerede objekt i AddScoped (unikt i anmodningslivscyklussen), ikke fordi det ikke kan opnås, men fordi det erhvervede objekt ikke opnås af konstruktøren, det vil sige, det erhvervede objekt deles ikke, og brugsscenariet er som i IUnitOfWork.
Så hvordan får man manuelt injektionsobjekterne under anmodningslivscyklussen? Sådan gør du:
eller
IHttpContextAccessor-grænsefladen findes under Microsoft.AspNetCore.Http.AbstractionsNuget-pakken.
|