Dans ASP.NET MVC, comment définir l'ordre dans lequel mes attributs personnalisés sont vérifiés / appliqués?

StackOverflow https://stackoverflow.com/questions/815795

Question

Je suis en train d'étudier la possibilité d'utiliser des attributs personnalisés dérivés d'ActionFilterAttribute. Je veux accomplir quelques choses avec quelques attributs. La chose est que je veux m'assurer que l'un des attributs entre en jeu en premier, et pas dans n'importe quelle séquence aléatoire.

Exemple:

public class Feature1Attrubute : ActionFilterAttribute
{
    /* ... */
}

public class Feature2Attrubute : ActionFilterAttribute
{
    /* ... */
}

public class MyController : Controller
{
    [Feature1, Feature2]
    public ActionResult MyAction ()
    {
        /* ... */
    }
}

Est-ce que les attributs sont appliqués dans l'ordre indiqué dans la décoration de la méthode?

Si non, y a-t-il un moyen de définir une séquence particulière pour un groupe d'attributs [custom]?

Était-ce utile?

La solution

La classe de base ActionFilterAttribute a une propriété appelée Order . C'est ce que vous recherchez.

public class MyController : Controller
{
    [Feature1(Order = 1), Feature2(Order = 2)]
    public ActionResult MyAction ()
    {
        /* ... */
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top