通过传递其名称来分配字段值

时间:2012-08-26 22:20:01

标签: c# .net reflection field

我一直在阅读其他的例子,我似乎可以通过传递其名称来分配我的字段的值。

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结尾,我无法找出原因

1 个答案:

答案 0 :(得分:2)

.Net反射中的Get*方法默认只搜索公共成员 要获取私有字段,请传递BindingFlags.NonPublic | BindingFlags.Instance