Создать экземпляр веб-элемента управления, используя отражение - PullRequest
0 голосов
/ 21 октября 2010

Как я могу создать экземпляр веб-элемента управления во время выполнения, используя отражение?Я создал серию элементов управления, которые реализуют общий интерфейс, и я хотел бы создать эти элементы управления на основе имени элемента управления, который хранится в моей базе данных.

Я попытался (и не смог) создать экземплярэтих элементов управления с помощью Activator.CreateInstance следующими способами:

Activator.CreateInstance("MyUserControl")

и

Activator.CreateInstance("ASP","controls_myusercontrol_ascx")

... и оба возвращают ноль.

Я также пыталсяпросто получить тип элемента управления, пытаясь ..

Type t = Type.GetType("controls_myusercontrol_ascx");

и

Type t = Type.GetType("MyUserControl");

... и он возвращает ноль.

Если я явно объявляюобъект как controls_myusercontrol_ascx или MyUserControl, проблем нет, но его невозможно найти с помощью отражения.

Можно ли создавать пользовательские веб-элементы управления, используя отражение во время выполнения?Если да, то как я могу?

1 Ответ

1 голос
/ 21 октября 2010

Вы можете сделать это с помощью метода LoadControl в классе Page или Control. Из справки Visual Studio:

void Page_Init(object sender, System.EventArgs e)
{
    // Instantiate the UserControl object
    MyControl myControl1 =
        (MyControl)LoadControl("TempControl_Samples1.ascx.cs");
    PlaceHolder1.Controls.Add(myControl1);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...