0

私はこれの他の例を読んでいて、その名前を渡すことで自分のフィールドの値を割り当てることができるようです。

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 になり、その理由がわかりません

4

1 に答える 1

2

.Net リフレクションのGet*メソッドは、デフォルトでパブリック メンバーのみを検索します。
プライベート フィールドを取得するには、 を渡しBindingFlags.NonPublic | BindingFlags.Instanceます。

于 2012-08-26T22:23:11.750 に答える