Каков порядок выполнения при работе с .NET MVC 2 Action Filters? - PullRequest
6 голосов
/ 04 июня 2010

Скажи, что у меня есть:

[Attribute1(Order=0)]  
public class Controller1  
{  
    [Attribute2]  
    [Attribute3]  
    public ActionResult Action1() { ... }  
}

Атрибуты выполняются в следующем порядке: 2, 3, 1

Это имеет смысл, поскольку атрибуты 2 и 3 имеют порядок -1 и будут выполняться перед атрибутом 1, для которого явно установлен порядок, равный 0.

Теперь, допустим, у меня есть:

[Attribute1]  
[Attribute2(Order=0)]  
public class Controller1  
{  
    [Attribute3]  
    public ActionResult Action1() { ... }  
}

Атрибуты выполняются в следующем порядке: 1, 2, 3

Почему этот атрибут 2 в этом случае (который имеет порядок, равный 0) выполняется перед атрибутом 3 (который имеет порядок, равный -1)?

1 Ответ

3 голосов
/ 04 июня 2010

Они должны быть выполнены в порядке 1, 3, 2, как вы предложили. И на самом деле они выполняются в правильном порядке на моей машине.

Можете ли вы дать определения ваших трех атрибутов? Здесь может быть что-то еще.

...