В ASP.NET MVC, как определить, в какой последовательности проверяются / применяются мои пользовательские атрибуты?

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

Вопрос

В настоящее время я изучаю возможность использования пользовательских атрибутов, производных от 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 ()
    {
        /* ... */
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top