// METHODS private void AddFields(Type reflectedType) { MemberInfo[] fieldInfoList = reflectedType.FindMembers(MemberTypes.Field, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.SetField | BindingFlags.SetProperty, null, null); foreach (MemberInfo fieldInfo in fieldInfoList) { object[] attributeList = fieldInfo.GetCustomAttributes(typeof(InjectAttribute), true); if (attributeList.Length > 0) { if (!Fields.Contains((FieldInfo)fieldInfo)) { Fields.AddLast((FieldInfo)fieldInfo); } } } if (reflectedType.BaseType != typeof(object)) { AddFields(reflectedType.BaseType); } }