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

В настоящее время я изучаю возможность использования пользовательских атрибутов, полученных из ActionFilterAttribute. Я хочу сделать пару вещей с помощью нескольких атрибутов. Дело в том, что я хочу убедиться, что в игру вступает один из атрибутов первым, а не в произвольной последовательности.

Пример:

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

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

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

Это так, что атрибуты применяются в последовательности, упомянутой в оформлении метода?

Если нет, есть ли способ определить конкретную последовательность для группы [пользовательских] атрибутов?

1 Ответ

5 голосов
/ 03 мая 2009

Базовый класс ActionFilterAttribute имеет свойство с именем Order. Это то, что вы ищете.

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