No ASP.NET MVC, como definir em qual sequência meus atributos personalizados são verificados/aplicados?
-
03-07-2019 - |
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]?
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