示例#1
0
        internal static bool IsMatchFull(
            this PropertyInfo property,
            string name,
            Type returnType,
            Type[] parameterTypes,
            BindingFlags flags)
        {
            if (property == null)
            {
                return(false);
            }

            var getMethod = property.GetGetMethod((flags & BindingFlags.NonPublic) != 0);

            if (getMethod == null)
            {
                return(false);
            }

            return(property.Name.Equals(name, flags.GetComparison()) &&
                   DoesMatchFlags(getMethod, flags) &&
                   IsMatchExtended(getMethod, parameterTypes, callConvention: 0) &&
                   Util.DoTypesMatch(returnType, getMethod.ReturnType));
        }
示例#2
0
 internal static bool IsMatch(this FieldInfo field, string name, BindingFlags flags)
 {
     return((name?.Equals(field?.Name, flags.GetComparison()) ?? false) &&
            DoesMatchFlags(field, flags));
 }
示例#3
0
 internal static bool IsMatch(this Type type, string name, BindingFlags flags)
 {
     return((name?.Equals(type?.Name, flags.GetComparison()) ?? false) &&
            DoesMatchFlags(type, flags));
 }
示例#4
0
 internal static bool IsMatch(this EventInfo eventInfo, string name, BindingFlags flags)
 {
     return((name?.Equals(eventInfo?.Name, flags.GetComparison()) ?? false) &&
            DoesMatchFlags(eventInfo, flags));
 }
示例#5
0
 internal static bool IsMatch(this MemberInfo member, string name, BindingFlags flags)
 {
     return((name?.Equals(member?.Name, flags.GetComparison()) ?? false) &&
            DoesMatchFlags(member, flags));
 }