2009-05-02 3 views
1

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

Пример:

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

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

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

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

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

ответ

5

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

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

Правильно, я помню, что в какой-то статье упоминалось что-то подобное, без подробностей. Благодарю. Попробует. – User