C # - Поиск записей в базе данных и динамическая загрузка пользовательских элементов управления - PullRequest
1 голос
/ 24 августа 2011

Я внимательно следил за ссылкой C # - правильный способ загрузки сборки, поиск класса и вызов метода Run () и получил код для динамической загрузки классов из сборки.

             Assembly assembly = Assembly.LoadFile(assemblyName);
             Type type = assembly.GetType(className);
             object objCustomClass = Activator.CreateInstance(type) as object; 

где имя_сборки и имя_класса получены из базы данных

Но мне нужно загрузить классы usercontrol из базы данных. У меня нет сборки, так как пользовательский элемент управления находится в самом UI. Как это сделать?

Редактировать: Я немного меняю свой вопрос. Теперь я храню пользовательский файл управления в каком-то другом месте, может быть в хранилище BLOB-объектов или в каком-то другом месте (не в моем рабочем пространстве проекта), и я храню URL пользовательского элемента управления в базе данных. Как загрузить этот пользовательский контроль на мою веб-страницу?

Могу ли я создать dll из всех моих пользовательских элементов управления и загрузить точно так, как указано выше?

Ответы [ 3 ]

0 голосов
/ 24 августа 2011

Вы можете использовать любой из следующих двух подходов

Вы всегда можете настроить свой пользовательский элемент управления. В них у вас будет сборка, которую вы сможете хранить в своей БД.

Или, если вы хотите динамически загружать usercontrols, вы можете сохранить путь usercontrol ('\ controls \ usercontrol.ascx') в вашей БД и загружать его динамически, как любой другой элемент управления

0 голосов
/ 24 августа 2011

Вы используете MyControl control = (MyControl)Page.LoadControl("mycontrolname.ascx")

0 голосов
/ 24 августа 2011

Да, просто прагматично создайте объект вашего элемента управления UI, когда это необходимо, и используйте для этого метод this.Controls.Add(cbName);.

Пожалуйста, посмотрите на эту ссылку для деталей

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