Динамический выбор и построение элемента управления из библиотеки элементов управления с использованием имени элемента управления из таблицы - PullRequest
0 голосов
/ 01 февраля 2010

У меня есть пользовательский DDL, который находится в моей библиотеке управления сервером.

В настоящее время я добавляю этот элемент управления в таблицу, строго набирая имя элемента управления обычным способом.

Control_Library.Report_NumberDDL newDDL = new Control_Library.Report_NumberDDL();

Я хочу иметь возможность динамически создавать этот элемент управления, извлекая его имя из таблицы.

Таким образом, в моем коде должно быть имя элемента управления, в данном случае «Report_NumberDDL», и я хотел бы затем создать элемент управления без необходимости его строгого ввода.

Примерно так, хотя я знаю, что это не работает:

string controlName = "Report_NumberDDL";

Control_Library."controlName" controlNum1 = new Control_Library."controlName"();

ТАК, поскольку это, очевидно, не работает, может кто-нибудь помочь мне с тем, что будет работать?

Спасибо

Edit:

Я пытался сделать это:

    Type type = Type.GetType("Control_Library.Report_NumberDDL");
    object control = Activator.CreateInstance(type);

Но в CreateInstance (тип) я получаю исключение со значением NULL. Таким образом, Тип не создается правильно.

1 Ответ

0 голосов
/ 01 февраля 2010

Вам нужно будет использовать отражение для динамического создания объектов. Импортируйте пространство имен System.Reflection, затем сделайте что-то вроде этого:

Type type = Type.GetType(ControlName); 
object control = Activator.CreateInstance(type); 
...