2010-11-17 145 views
1

我有一個asp.net中的用戶控件,我需要動態設置屬性。的財產權及屬性值是在字典中,例如:動態設置用戶控件屬性

Dictionary<string, string> propertyValues; 
Control c = Page.LoadControl("~/Control.ascx") 

我可以使用反射當前設定的控制特性,但是,與.NET 4和新的動態關鍵字,有更簡單的方式來這樣做,例如,這樣的事情:

dynamic c = Page.LoadControl("~/control.ascx"); 
foreach(var itemin propertyValues) 
{ 
    c.item.key = item.value; 
} 

這顯然不工作,因爲item.key是一個字符串,而不是一個屬性。

謝謝 Raj。

+0

我不認爲有一個解決方案使用動態關鍵字,我可以拿出最好的選擇是使用擴展方法來控制和使用擴展方法內的反射。 – Raj 2010-11-18 09:32:25

回答

0

你試過c[item.key] ???或者c.Properties[item.Key] ???

+0

這不起作用。 – SLaks 2010-11-17 17:55:12