Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 57373|Répondre: 4

[Source] ASP.NET DI Core (VI) obtient manuellement la méthode d’injection d’objets

[Copié le lien]
Publié le 19-03-2021 à 15:13:15 | | |
Tutoriel sur ASP.NET’injection de dépendance de cœur, inversion de contrôle (DI IOC) :

ASP.NET’injection de dépendance centrale utilise le conteneur IOC qui l’accompagne
https://www.itsvse.com/thread-7562-1-1.html


Révision:

ASP.NET Core (cinq) est basé sur les transactions distribuées CAP
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Validation unifiée du modèle ModelState filtre Core(4)
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Créer dynamiquement des instances à l’aide d’ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Redémarrer l’application par code
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) utilise la mise en cache Redis
https://www.itsvse.com/thread-9393-1-1.html
Injection de dépendances en résumé :

L’injection de dépendances (DI) est une technique qui met en œuvre un couplage lâche entre un objet et ses collaborateurs ou dépendances. Fournir ces objets que la classe utilise pour effectuer ses opérations à la classe d’une manière ou d’une autre, plutôt que d’instanciar directement des collaborateurs ou d’utiliser des références statiques.

ASP.NET DI Core utilise généralement l’injection de constructeurs pour obtenir des objets, par exemple après avoir configuré l’injection ConfigureServices, elle peut être obtenue des manières suivantes :


Et si vous récupérez manuellement l’objet d’injection ?

La première façon de l’obtenir(Parfois, on ne peut pas l’obtenir,Non recommandé):


La deuxième façon de l’obtenirUtilisation recommandée):

Note : Il convient de noter qu’en utilisant ServiceLocator.Instance.GetService<T>() ; ,Seuls les objets injectés par AddTransient et AddSingleton peuvent être récupérés, et ne peut pas obtenir l’objet injecté d’AddScoped (unique dans le cycle de vie de la requête), non pas parce qu’il ne peut pas être obtenu, mais parce que l’objet acquis n’est pas obtenu par le constructeur, c’est-à-dire que l’objet acquis n’est pas partagé, et que le scénario d’utilisation est tel qu’IUnitOfWork.

Alors, comment obtenir manuellement les objets d’injection pendant le cycle de vie de la requête ? Voici comment :


ou

L’interface IHttpContextAccessor est sous le paquet Microsoft.AspNetCore.Http.AbstractionsNuget.




Précédent:HttpClient POST directement pour envoyer des requêtes de compression en octet-octets (gzip)
Prochain:La différence entre le compilateur Roslyn MSBuild
Publié le 2021-9-22 à 20:43:14 |
Apprends à apprendre...
Publié le 2021-9-22 à 20:55:17 |
Apprends à apprendre...
Publié le 17-06-2022 à 16:05:39 |
Apprenez à l’utiliser
 Propriétaire| Publié le 30-12-2024 à 17:09:09 |
La console injecte l’interface IHttpContextAccessor :



Les services de console .NET/C# sont enregistrés auprès de la découverte des services Consul
https://www.itsvse.com/thread-10899-1-1.html
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com