private MemberInfo GetFirstMember(string memberName, Type type) { var flags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.FlattenHierarchy; PropertyInfo prop = _reflectionHelper.TryGetProperty(type, memberName, flags); if (prop != null) { return(prop); } FieldInfo field = _reflectionHelper.TryGetField(type, memberName, flags); if (field != null) { return(field); } throw new MemberNotFoundException($"Cannot find property or field \"{memberName}\" in class \"{type.Name}\" and all its parents. BindingFlags = {flags}"); }