我有一个班级,
public class Test
{
public int b { get; set; }
public int c { get; set; }
public List<Doc> doc=new List<Doc>();
}
Public Class Doc
{
public int a { get; set; }
public int b { get; set; }
}
在这里,我可以将值设置为测试变量,如
Test test = new Test();
string var1= "b";
PropertyInfo pi= test.GetType().GetProperty(var1);
pi.SetValue(test, Convert.ChangeType(1,pi.PropertyType), null);
所以我可以将test.b改为1.同样我需要设置doc的值。 我如何实现这一目标。谢谢你的时间。
答案 0 :(得分:1)
doc
不是财产;这是一个领域。
var test = new Test();
var field = test.GetType().GetField("doc");
field.SetValue(test, new List<Doc>() { new Doc() });
Console.WriteLine(test.doc.Count); // 1