Как загрузить usercontrols из сборки, используя имя файла? - PullRequest
2 голосов
/ 16 декабря 2009

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

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

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

1 Ответ

3 голосов
/ 16 декабря 2009

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

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

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

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