Я разрабатываю ряд модулей для клиента, которые будут совместно использовать некоторые функции пользовательского интерфейса, используя общий пользовательский веб-элемент управления для предоставления пользовательского интерфейса. Когда я написал первый модуль и добавил в файл .ascx, все было хорошо. Когда я добавляю тот же элемент управления ко второму модулю, я получаю следующую ошибку:
DotNetNuke.Services.Exceptions.ModuleLoadException: тип «XXX.ParametersControl.ParameterTabControl» неоднозначен: он мог происходить из сборки «C: \ Clients \ XXX \ Code \ Reporting \ DotNetNuke_BaseInstall \ bin \ XXX.KPI_Configurable_Chart». 'C: \ Clients \ XXX \ Code \ Reporting \ DotNetNuke_BaseInstall \ bin \ XXX.Survey_Grid.DLL'. Пожалуйста, укажите сборку явно в имени типа.
Оба модуля устанавливаются и отлично работают без этого дополнительного элемента управления пользовательского интерфейса.
Я разработал элемент управления пользовательского интерфейса как отдельный проект, который компилирует собственную библиотеку DLL для включенных функций серверной части, а затем развертывает приложение с помощью только скомпилированной библиотеки DLL и управляющего файла ASCX в файлах установки модуля.
Включение в основной модуль ASCX осуществляется следующим образом:
‹% @ Register src =" ParameterControl / ParameterTabControl.ascx "tagname =" ParameterTabControl "tagprefix =" uc1 "%>
Как видите, я включаю элемент управления интерфейсом, получая его из подкаталога, который я реализую как внешний Subversion.
Я ссылаюсь на объекты и свойства элемента управления в коде .vb основного модуля следующим образом:
ParameterTabControl1.DateRangeTabVisible = True
If (ParameterTabControl1.StartDate Is Nothing) Then
ParameterTabControl1.StartDate = DateAdd(DateInterval.Day, -90, Now)
End If
Какие-нибудь советы о том, как это спроектировать, чтобы этого не произошло? Каким-либо способом заставить субэлемент управления ASCX подключаться только к его собственной DLL и не быть привязанным к элементу управления основного модуля, при этом позволяя мне запрашивать свойства и объекты в элементе управления, чтобы установить и получить его свойства?