У меня есть метод расширения HtmlHelper, к которому я хотел бы применить некоторую логику перед выполнением. Я полагаю, что я ищу поведение, похожее на Action Filters, но я думал, что смогу сделать это, применив атрибут к методу без необходимости контекста фильтра.
Это мой метод расширения:
[MyHelperAttribute]
public static string MyHelperMethod(this HtmlHelper html, string text)
{
TagBuilder tag = new TagBuilder("a");
return tag.ToString();
}
где это определение атрибута:
[AttributeUsage(AttributeTargets.Method)]
public class MyHelperAttribute: Attribute
{
public MyHelperAttribute()
{
// get user
// if user has permission, execute extension method
// else return empty string
}
}
Проблема в том, что это не стрельба. Код внутри конструктора MyHelperAttribute никогда не выполняется. Может кто-нибудь сказать мне, почему это не работает или что я могу сделать, чтобы заставить его работать?
Кстати, это достойный способ управления генерацией защищенных ссылок? Есть ли лучший способ?
Спасибо
Dave