我正在測試原來的代碼中的邏輯,我無法輕鬆去編輯,但代碼所在的對象中有50多個對象是null無論出於何種原因我想要做的是:從我的測試代碼中,使用反射,遍歷我正在測試的類的所有內部對象,並且如果所述對象爲null,那麼只是實例化它。這是我迄今:使用反射來實例化對象內的控件屬性
Type ucApprovedType = ucApproved.GetType();
System.Reflection.FieldInfo[] fieldInfo = ucApprovedType.GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
foreach (System.Reflection.FieldInfo ucFieldInfo in fieldInfo)
{
Control control = ucApproved.FindControl(ucFieldInfo.Name);
if (control == null)
control = new Control();
//Set instantiated control back to ucApproved item
}
我上面跑的第一個問題是,控制回來空從的FindControl(ucFieldInfo.Name)調用。然後,一旦我有了instatiated控件,我不知道如何將它的值設置回ucApproved對象,因爲我無法執行ucApproved.Controls[0] = control
,因爲ControlCollection是隻讀的。
這工作非常好! (符合不同類型的控件)非常感謝! – IWriteApps