Quel est l'ordre d'exécution lorsqu'ils traitent avec des filtres .NET MVC 2 Action?
-
24-10-2019 - |
Question
Dis-je:
[Attribute1(Order=0)]
public class Controller1
{
[Attribute2]
[Attribute3]
public ActionResult Action1() { ... }
}
Les attributs s'exécuter dans l'ordre suivant: 2, 3, 1
Cela est logique car les attributs 2 et 3 ont un ordre de -1 et sera exécuté avant attribut 1 qui a un ordre explicitement égal à 0.
Maintenant, laisse dire que j'ai:
[Attribute1]
[Attribute2(Order=0)]
public class Controller1
{
[Attribute3]
public ActionResult Action1() { ... }
}
Les attributs s'exécuter dans l'ordre suivant: 1, 2, 3
Pourquoi est-ce que l'attribut 2 dans ce cas (qui a un ordre égal à 0) est exécutée avant l'attribut 3 (qui a un ordre égal à -1)?
La solution
Ils doivent être exécutées dans l'ordre 1, 3, 2, comme vous aviez proposé. Et en fait, ils exécutent dans l'ordre correct sur ma machine.
Pouvez-vous fournir les définitions de vos trois attributs? Il pourrait y avoir autre chose en jeu ici.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow