Jak uzyskać metodę MethodInfo akcji, podaną akcję, nazwę kontrolera i nazwy obszaru?

Mam następującą metodę rozszerzenia:

public MyCustomAttribute[] GetActionAttributes(
    this Controller @this,
    string action,
    string controller,
    string area,
    string method)
{
}

W jaki sposób ASP.NET MVC 3 znajduje metodę działania, biorąc pod uwagę obszar, kontroler, nazwy akcji i metodę (GET, POST)?

Do tej chwili nie mam nic ... żadnych wskazówek, jak to zrobić.

Obecnie szukam śladu stosu wewnątrz akcji kontrolera, aby dowiedzieć się, w jaki sposób MVC go odkryło.

Dlaczego potrzebuję tych atrybutów

Moje atrybuty zawierają informacje o tym, czy dany użytkownik może lub nie ma do niego dostępu ... ale w zależności od tego, czy mogą uzyskać do niego dostęp, czy nie, nie chcę pokazywać ani ukrywać niektórych pól html, linków i innych rzeczy, które mogłyby nazwać to działanie .

Inne zastosowania

Pomyślałem o tym, aby umieścić ten atrybut nad akcją, która mówi klasie css łącza, które zostanie zrealizowane, aby ją wywołać ... i kilka innych wskazówek interfejsu ... a następnie zbuduj HtmlHelper, który wyświetli ten link , patrząc na te atrybuty.

Nie duplikat

Tak, niektórzy powiedzą, że to prawdopodobnie duplikat tego pytania ... nie ma odpowiedzi, której chcę:

Jak mogę uzyskać metodę MethodInfo akcji kontrolera, która zostanie wywołana po otrzymaniu żądania?

Dlatego określiłem okoliczności mojego pytania.

questionAnswers(4)

yourAnswerToTheQuestion