ASP.NET - свойства ascx.designer не отображаются в отражении во время выполнения - PullRequest
1 голос
/ 02 июля 2010

У меня очень простая настройка, один mycontrol.ascx с ассоциированным файлом mycontrol.ascx.designer.vb и mycontrol.ascx.vb.

mycontrol.ascx встраивает одну ссылку в пользовательский элемент управления: «MyMenu»:

<mM:myMenu id="myMenu1" runat="server" />

Это создало защищенную ссылку в файле mycontrol.ascx.designer.vb:

Protected WithEvents myMenu1 As Global.CustomControls.MyMenu

Теперь, когда я устанавливаю точку останова на событие Page_Load () mycontrol.ascx и проверяю элементы, возвращенные из типа, через:

Me.GetType().GetMembers()

Я не могу ссылаться на myMenu1.Если я взгляну на элемент управления с помощью intellisence, свойство будет доступно:

Me.myMenu1 

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

Приветствия

Ням.

Ответы [ 2 ]

0 голосов
/ 02 июля 2010

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

Я не знаю ваш элемент управления меню, но вам не нужно понимать членовпользовательский элемент управления, вам необходимо добраться до элементов меню управления.

myMenu1.GetType().GetMembers()

Кроме того, зачем использовать отражение?Разве ваш пользовательский элемент управления не предоставляет свойства, с помощью которых вы можете установить свои настройки, такие как

myMenu1.SelectedMenuItem = 3
0 голосов
/ 02 июля 2010

Ваш .acsx файл создает отдельный класс (генерируемый компилятором), который наследует класс codebehind.

GetMembers возвращает только члены, определенные непосредственно в классе, а не все члены, унаследованные от его базового класса.

Вам нужно получить члены, определенные в базовом классе, например:

Me.GetType().BaseType.GetMembers()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...