public override FieldInfo BindToField(BindingFlags bindingAttr, FieldInfo[] match, object value, CultureInfo culture) { if (((this.m_CachedMember != null) && (this.m_CachedMember.MemberType == MemberTypes.Field)) && ((match[0] != null) && (match[0].Name == this.m_CachedMember.Name))) { return (FieldInfo) this.m_CachedMember; } FieldInfo info = match[0]; int upperBound = match.GetUpperBound(0); for (int i = 1; i <= upperBound; i++) { if (match[i].DeclaringType.IsSubclassOf(info.DeclaringType)) { info = match[i]; } } return info; }