Exigences : Dans ASP.NET Core, nous utilisons généralement AddTransient, AddScope et AddSingleton pour enregistrer des services avec différents cycles de vie selon notre propre activité, si le projet doit enregistrer 100 services (couche d’accès à la base de données, règles de nommage d’objets classiques), nous devons écrire 100 lignes de code pour l’enregistrement, comment enregistrer ces services dynamiquement ou en utilisant la réflexion ?
Par réflexion dynamique, il ne nous faut que quelques lignes de code pour être complété, et lorsque nous créons un nouveau service (car il sera scanné pour de nouveaux services lorsqu’il sera enregistré dynamiquement), nous n’avons pas besoin de l’enregistrer.
Le principe dynamique du service d’enregistrement est d’appeler le constructeur. Services.AddServiceDescriptormanière.
Notre couche d’accès à la base de données, nom de l’interface : IClassificationService, nom de l’objet de l’interface d’implémentation : ClassificationService, le nom de la couche d’accès à la base de données est suivi de « Service », vous pouvez enregistrer tous les services de la couche d’accès à la base de données via cette règle, le code est le suivant :
Code de l’interface IClassificationService :
Code ClassificationService :
(Fin)
|