Wie definieren Sie in ASP.NET MVC in welcher Sequenz meine benutzerdefinierten Attribute überprüft/angewendet werden?

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

Frage

Ich untersuche derzeit die Möglichkeit, benutzerdefinierte Attribute zu verwenden, die von ActionFilterAttribute abgeleitet wurden. Ich möchte ein paar Dinge mit ein paar Attributen erreichen. Die Sache ist, dass ich sicherstellen möchte, dass eines der Attribute zuerst ins Spiel kommt und nicht in einer zufälligen Reihenfolge.

Beispiel:

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

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

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

Ist es so, dass Attribute in der in der Methodendekoration erwähnten Sequenz angewendet werden?

Wenn nicht, gibt es eine Möglichkeit, eine bestimmte Sequenz für eine Gruppe von [benutzerdefinierten] Attributen zu definieren?

War es hilfreich?

Lösung

Die Basisklasse ActionFilterAttribute hat eine Eigenschaft namens namens Order. Das ist es, wonach du suchst.

public class MyController : Controller
{
    [Feature1(Order = 1), Feature2(Order = 2)]
    public ActionResult MyAction ()
    {
        /* ... */
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top