کار با Type و PropertyInfo
کد زیر رو نوشتم که فکر کنم از قیافش پیداست که داره چیکار می کنه.
کلاسی دارم که بسته به نوعی که انتخاب میشه یک WEBControl می سازه. بعضی از Property های این نوع ساخته شده در کلاس من موجود هست و می خوام مقدار اون Property رو جایگزین مقدار WEbBontrolی که ساختم بکنم.
فقط نمیدونم در قسمتی که به رنگ قرمز نشون دادم باید چی بنویسم!!!
تو قسمت قرمز ظاهرن باید نام Property نوشته بشه ولی از کجا؟!!
foreach (PropertyInfo ControlInfo in answer.Control.GetType().GetProperties())
foreach (PropertyInfo AnswerInfo in answer.GetType().GetProperties())
{
if ((ControlInfo.PropertyType == AnswerInfo.PropertyType) && (ControlInfo.Name == AnswerInfo.Name))
ControlInfo.SetValue(answer.Control as object, AnswerInfo.GetValue(null,null), null);
}
مثلن اون خط اگر به شکل
info[5].SetValue(answer.Control as object, TextBoxMode.Password, null);
نوشته بشه همه چیز درست کار می کنه.