В ASP.NET MVC, как определить, в какой последовательности проверяются / применяются мои пользовательские атрибуты?
-
03-07-2019 - |
Вопрос
В настоящее время я изучаю возможность использования пользовательских атрибутов, производных от ActionFilterAttribute.Я хочу выполнить пару вещей с помощью пары атрибутов.Дело в том, что я хочу убедиться, что один из атрибутов вступает в игру первым, а не в какой-либо случайной последовательности.
Пример:
public class Feature1Attrubute : ActionFilterAttribute
{
/* ... */
}
public class Feature2Attrubute : ActionFilterAttribute
{
/* ... */
}
public class MyController : Controller
{
[Feature1, Feature2]
public ActionResult MyAction ()
{
/* ... */
}
}
Так ли это, что атрибуты применяются в той последовательности, в которой они упомянуты в оформлении метода?
Если нет, то есть ли способ определить определенную последовательность для группы [пользовательских] атрибутов?
Решение
Базовый класс ActionFilterAttribute
имеет свойство, называемое Order
.Это то, что вы ищете.
public class MyController : Controller
{
[Feature1(Order = 1), Feature2(Order = 2)]
public ActionResult MyAction ()
{
/* ... */
}
}
Не связан с StackOverflow