Maison > développement back-end > C++ > Dois-je injecter des dépendances dans les attributs ?

Dois-je injecter des dépendances dans les attributs ?

DDD
Libérer: 2025-01-15 08:24:44
original
576 Les gens l'ont consulté

Should I Inject Dependencies into Attributes?

Injection de dépendance de propriété : non recommandée

L'injection de propriétés doit généralement être évitée en raison des limitations du CLR et des frameworks tels que MVC et Web API.

Question

Dans votre code, injecter IPermissionService dans AuthorizeAttribute via l'injection de propriété sera problématique car au moment de l'exécution permissionService sera nul.

Solution

Veuillez considérer les éléments suivants :

Option 1 : Séparer les données et le comportement

  • Extraire la logique des attributs dans un service
  • Enregistrez le service dans le conteneur
  • Utilisez des attributs pour analyser et appeler la méthode du service

Option 2 : Utiliser des objets humbles

  • Déplacez toute la logique des propriétés vers des services personnalisés
  • Enregistrez le service dans le conteneur
  • Laissez la méthode AuthorizeCore de la propriété résoudre le service et appeler sa méthode

Quelle option choisir ?

  • Option 1 : Pour une simplicité de conception, plusieurs propriétés ou la définition de propriétés dans un assemblage indépendant de MVC.
  • Option 2 : Dans d'autres cas, une approche plus pragmatique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal