Я работаю над взломом модуля DotNetNuke Events. Я установил исходный код, и он создал A-OK без изменений. Однако, когда я изменяю файл EventMonth.ascx, Visual Studio обновляет связанный с ним файл .designer.vb ... и объявляет два объекта неправильного типа! Это выглядит так:
Protected WithEvents EventIcons As Global.System.Web.UI.UserControl
И должно выглядеть так:
Protected WithEvents EventIcons As Global.DotNetNuke.Modules.Events.EventIcons
Очевидно, это не сработает ... компилятор (правильно) выдает ошибку, когда EventIcons используется в коде. Что вызывает это? Я мог бы легко исправить это вручную, но тогда, конечно, он просто сломается позже. Я не думаю, что это тот факт, что идентификатор элемента управления совпадает с именем класса, потому что то же самое происходит с другим экземпляром того же элемента управления, но с другим именем.
Обновление: ОК ... Я считаю, что это происходит, потому что указанный пользовательский элемент управления не может быть найден во время разработки. Но это, очевидно, работает во время выполнения:
<%@ Register TagPrefix="evt" TagName="Icons" Src="~/DesktopModules/Events/EventIcons.ascx" %>
Это имеет логический смысл ... но я полагаю, что тогда возникает вопрос "что решает во время разработки?" Я думаю, я могу изменить это просто «EventIcons.ascx», и он будет генерировать код ОК. Но будет ли это работать во время выполнения? : |