ну вот и ответ ....
Сначала вам нужно правильно посмотреть на страницу, вызвав this.GetType (). BaseType. Оказывается, оператор this, который вы используете на страницах aspx, в конечном итоге является производным типом ...
Как только это будет сделано, вы можете найти атрибуты в полях
const BindingFlags bf = BindingFlags.DeclaredOnly
| BindingFlags.NonPublic | BindingFlags.Public
| BindingFlags.Instance | BindingFlags.Static;
foreach (Control c в элементах управления)
{
bool useMHCSecurity = c is IMHCSecurityControl;
если (c.ID! = ноль)
{
FieldInfo info = parentPage.GetField (c.ID, bf);
если (информация! = ноль)
{
object [] attribute = info.GetCustomAttributes (typeof (MHCSecurityAttribute), false);
обратите внимание, вы должны проверить это
1) у вас есть идентификатор атрибута (вы получаете буквальные элементы управления и такие, которые не будут назначены атрибуты)
2) убедитесь, что вы получите и FieldInfo var обратно
3) убедитесь, что вы переместили определения элемента управления из файла конструктора в файл кода (дизайнер перезапишет)