我一直在阅读其他的例子,我似乎可以通过传递其名称来分配我的字段的值。
private string fieldName; //contains the name of the field I want to edit
void IObserver.Update(object data)
{
FieldInfo field = this.GetType().GetField(fieldName);
if(field != null)
{
field.SetValue(this, data);
}
}
字段总是以null结尾,我无法找出原因
答案 0 :(得分:2)
.Net反射中的Get*
方法默认只搜索公共成员
要获取私有字段,请传递BindingFlags.NonPublic | BindingFlags.Instance
。