/// <summary>
 /// Gets all public and non-public instance members on the given <paramref name="type"/>.
 /// </summary>
 /// <returns>A list of all members on the type. This value will never be null.</returns>
 /// <param name="type">The type to reflect on.</param>
 /// <returns>A list of all members on the type. This value will never be null.</returns>
 public static IList <MemberInfo> Members(this Type type)
 {
     return(ReflectLookup.Members(type));
 }
 /// <summary>
 /// Gets all public and non-public instance members on the given <paramref name="type"/> that
 /// match the specified <paramref name="bindingFlags"/>.
 /// </summary>
 /// <returns>A list of all matching members on the type. This value will never be null.</returns>
 /// <param name="type">The type to reflect on.</param>
 /// <param name="bindingFlags">The <see cref="BindingFlags"/> or <see cref="FasterflectFlags"/> combination used to define
 /// the search behavior and result filtering.</param>
 /// <returns>A list of all matching members on the type. This value will never be null.</returns>
 public static IList <MemberInfo> Members(this Type type, FasterflectFlags bindingFlags)
 {
     return(ReflectLookup.Members(type, bindingFlags));
 }
 /// <summary>
 /// Gets all members of the given <paramref name="memberTypes"/> on the given <paramref name="type"/> that
 /// match the specified <paramref name="bindingFlags"/>, optionally filtered by the supplied <paramref name="names"/>
 /// list (in accordance with the given <paramref name="bindingFlags"/>).
 /// </summary>
 /// <param name="type">The type to reflect on.</param>
 /// <param name="memberTypes">The <see cref="MemberTypes"/> to include in the result.</param>
 /// <param name="bindingFlags">The <see cref="BindingFlags"/> or <see cref="FasterflectFlags"/> combination used to define
 /// the search behavior and result filtering.</param>
 /// <param name="names">The optional list of names against which to filter the result. If this parameter is
 /// <see langword="null"/> or empty no name filtering will be applied. The default behavior is to check for an exact,
 /// case-sensitive match. Pass <see cref="FasterflectFlags.ExcludeExplicitlyImplemented"/> to exclude explicitly implemented
 /// interface members, <see cref="FasterflectFlags.PartialNameMatch"/> to locate by substring, and
 /// <see cref="FasterflectFlags.IgnoreCase"/> to ignore case.</param>
 /// <returns>A list of all matching members on the type. This value will never be null.</returns>
 public static IList <MemberInfo> Members(this Type type, MemberTypes memberTypes, FasterflectFlags bindingFlags, params string[] names)
 {
     return(ReflectLookup.Members(type, memberTypes, bindingFlags, names));
 }