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

Vue: 21364|Répondre: 1

[Source] .net/C# utilise les Attributs pour implémenter une AOP simple

[Copié le lien]
Publié sur 18/04/2017 14:54:11 | | |

Commençons par un simple morceau de code :



Supposons qu’il s’agisse d’un programme web, nous voulons d’abord vérifier la session, puis vérifier les permissions, lancer une transaction, écrire un journal, puis exécuter l’opération elle-même, et enfin écrire un journal. Évidemment, nous ne pouvons pas écrire tous les appels de méthode aux opérations ci-dessus dans DoSomething(), donc le code deviendra un gros problème, alors que devons-nous faire ?

Il existe de nombreuses façons de l’implémenter, comme utiliser des frameworks comme Spring, mais dans les projets réels, il n’est pas possible d’introduire un framework de manière informelle, et bien souvent, nous devons écrire certains mécanismes nous-mêmes.

Ici, je pense au Filter dans MVC, tant que vous mettez une balise d’attribut sur le contrôleur ou l’action, vous pouvez faire d’autres choses avant et après l’exécution de la méthode. Simulons simplement une implémentation de filtre.

Tout d’abord, la méthode originale est transformée en une manière élégante d’étiquettes de fonctionnalités :




Avec les balises de caractéristiques, il doit y avoir des classes correspondant aux balises de caractéristiques, ainsi qu’aux implémentations AOP, qui peuvent être contenues indépendamment dans un fichier ou un assembleur.

Premièrement, l’étiquette attachée à la méthode, implémentée comme vide :

//贴在方法上的标签
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
classe publique scellée MyInterceptorMethodAttribute : Attribute { }
Ensuite, définissez l’étiquette à attacher à la classe :




Voici une classe MyAopHandler définie, implémentée comme suit :




Notez que la partie opération spécifique du code ci-dessus est équivalente à une « classe proxy », qui modifie essentiellement le contexte d’exécution de la méthode. Des structures de programmes orientées objet telles que les délégués peuvent être utilisées pour exposer l’implémentation spécifique au monde extérieur pour un développement secondaire.




Précédent:ES5, ES6, ES2016, ES. Suite : Que se passe-t-il avec la version de Javascrip{filter}t ?
Prochain:Tutoriel pour débuter PowerShell - version v0.3
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