Как загрузить usercontrols из сборки, используя имя файла?

У нас есть набор пользовательских контроллеров, соответствующих dll. мы могли бы просто загрузить элементы управления, используя их имена классов, как ASP.theusercontrol_ascx blah = new ASP.theusercontrol_ascx();

но если у нас есть динамические данные и загружаем элементы управления на основе имени файла (или имени элемента управления), как мы можем загрузить их как Page.LoadControl("TheURL/theusercontrol.ascx")?

Большое спасибо...

1 ответ

Решение

Нет действительно правильного способа сделать это. Файлы.ascx не предназначены для такого развертывания. Код был скомпилирован в.dll, но фактическая разметка из файла.ascx - нет. Даже если вы будете следовать официальной документации Microsoft по преобразованию файлов.ascx в развертываемые элементы управления, вы потеряете возможность вызывать LoadControl на основе имени файла просто потому, что файла разметки больше нет.

Существует множество хаков, которые позволяют вам сделать это путем отражения и встраивания файлов.ascx в качестве ресурсов.

Кроме того, если вам действительно нужно использовать LoadControl(filename)Вам нужно будет скопировать файлы.ascx.

Другие вопросы по тегам