No ASP.NET MVC, como definir em qual sequência meus atributos personalizados são verificados/aplicados?

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

Pergunta

Atualmente, estou investigando a possibilidade de usar atributos personalizados derivados do ActionFilterattribute. Eu quero realizar algumas coisas com alguns atributos. O problema é que eu quero garantir que um dos atributos entre em jogo primeiro, e não em nenhuma sequência aleatória.

Exemplo:

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

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

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

É para que os atributos sejam aplicados na sequência que eles mencionaram na decoração do método?

Caso contrário, existe uma maneira de definir uma sequência específica para um grupo de atributos [personalizados]?

Foi útil?

Solução

A classe base ActionFilterAttribute tem uma propriedade chamada Order. É isso que você está procurando.

public class MyController : Controller
{
    [Feature1(Order = 1), Feature2(Order = 2)]
    public ActionResult MyAction ()
    {
        /* ... */
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top