Есть база данных, где хранятся параметры контролов(тип контрола — textbox, dropdownlist и др, ширина, высота ну и так далее). При создании контрола я прохожу по этой базе выдираю его тип и свойства, далее такой код...
switch(dr["ASPTYPE"].ToString().Trim())
{
case "WebTextEdit":
// создаем webtextedit
...
case "DropDownList"
// создаем dropdownlis
// ну и так далее
}
1. Можно ли не использовать switch а создать экземпляр класса Control и потом создавать объект на основе типа который передан, т.е. что-то похожее на это:
Control newControl;
string controlType = dr["ASPTYPE"].ToString().Trim();
newControl = new ( controlType ?????)
2. после создания контрола я прописываю его свойства т.е.
case "webtextedit":
WebTextEdit wte = new WebTextEdit();
for (int j = 0; j < sdProps.Count; j+=2)
{
switch(sdProps[j])
{
case "Width": wte.Width = Convert.ToUInt16(sdProps[j+1]); break;
case "Height": wte.Height = Convert.ToUInt16(sdProps[j+1]); break;
case "BorderColor": wte.BorderColor = Color.FromName(sdProps[j+1]); break;
case "BorderWidth": wte.BorderWidth = Convert.ToUInt16(sdProps[j+1]); break;
// и т.д..
}
}
Можно ли контролу отпрвить сразу словарик в виде ("наименование свойства", "значения свойства") чтобы избавиться от switch или как-то получить перечисление свойств контрола...