PropertyDoesNotHaveGetter() static private méthode

ArgumentException with message like "The property '{0}' has no 'get' accessor"
static private PropertyDoesNotHaveGetter ( object p0, string paramName ) : Exception
p0 object
paramName string
Résultat Exception
        private static void ValidateGettableFieldOrPropertyMember(MemberInfo member, out Type memberType)
        {
            Type?decType = member.DeclaringType;

            if (decType == null)
            {
                throw Error.NotAMemberOfAnyType(member, nameof(member));
            }

            // Null paramName as there are several paths here with different parameter names at the API
            TypeUtils.ValidateType(decType, null, allowByRef: true, allowPointer: true);
            switch (member)
            {
            case PropertyInfo pi:
                if (!pi.CanRead)
                {
                    throw Error.PropertyDoesNotHaveGetter(pi, nameof(member));
                }

                memberType = pi.PropertyType;
                break;

            case FieldInfo fi:
                memberType = fi.FieldType;
                break;

            default:
                throw Error.ArgumentMustBeFieldInfoOrPropertyInfo(nameof(member));
            }
        }
        private static void ValidateGettableFieldOrPropertyMember(MemberInfo member, out Type memberType)
        {
            FieldInfo fi = member as FieldInfo;

            if (fi == null)
            {
                PropertyInfo pi = member as PropertyInfo;
                if (pi == null)
                {
                    throw Error.ArgumentMustBeFieldInfoOrPropertyInfo(nameof(member));
                }
                if (!pi.CanRead)
                {
                    throw Error.PropertyDoesNotHaveGetter(pi, nameof(member));
                }
                memberType = pi.PropertyType;
            }
            else
            {
                if (fi.DeclaringType == null)
                {
                    throw Error.NotAMemberOfAnyType(fi, nameof(member));
                }

                memberType = fi.FieldType;
            }
        }
Exemple #3
0
        private static void ValidateAnonymousTypeMember(ref MemberInfo member, out Type memberType, string paramName, int index)
        {
            FieldInfo field = member as FieldInfo;

            if (field != null)
            {
                if (field.IsStatic)
                {
                    throw Error.ArgumentMustBeInstanceMember(paramName, index);
                }
                memberType = field.FieldType;
                return;
            }

            PropertyInfo pi = member as PropertyInfo;

            if (pi != null)
            {
                if (!pi.CanRead)
                {
                    throw Error.PropertyDoesNotHaveGetter(pi, paramName, index);
                }
                if (pi.GetGetMethod().IsStatic)
                {
                    throw Error.ArgumentMustBeInstanceMember(paramName, index);
                }
                memberType = pi.PropertyType;
                return;
            }

            MethodInfo method = member as MethodInfo;

            if (method != null)
            {
                if (method.IsStatic)
                {
                    throw Error.ArgumentMustBeInstanceMember(paramName, index);
                }

                PropertyInfo prop = GetProperty(method, paramName, index);
                member     = prop;
                memberType = prop.PropertyType;
                return;
            }
            throw Error.ArgumentMustBeFieldInfoOrPropertyInfoOrMethod(paramName, index);
        }
        private static void ValidateAnonymousTypeMember(ref MemberInfo member, out Type memberType)
        {
            var field = member as FieldInfo;

            if (field != null)
            {
                if (field.IsStatic)
                {
                    throw Error.ArgumentMustBeInstanceMember();
                }
                memberType = field.FieldType;
                return;
            }

            var pi = member as PropertyInfo;

            if (pi != null)
            {
                if (!pi.CanRead)
                {
                    throw Error.PropertyDoesNotHaveGetter(pi);
                }
                if (pi.GetGetMethod().IsStatic)
                {
                    throw Error.ArgumentMustBeInstanceMember();
                }
                memberType = pi.PropertyType;
                return;
            }

            var method = member as MethodInfo;

            if (method != null)
            {
                if (method.IsStatic)
                {
                    throw Error.ArgumentMustBeInstanceMember();
                }

                var prop = GetProperty(method);
                member     = prop;
                memberType = prop.PropertyType;
                return;
            }
            throw Error.ArgumentMustBeFieldInfoOrPropertInfoOrMethod();
        }
Exemple #5
0
        //CONFORMING
        private static void ValidateAnonymousTypeMember(ref MemberInfo member, out Type memberType)
        {
            switch (member.MemberType)
            {
            case MemberTypes.Field:
                FieldInfo field = member as FieldInfo;
                if (field.IsStatic)
                {
                    throw Error.ArgumentMustBeInstanceMember();
                }
                memberType = field.FieldType;
                break;

            case MemberTypes.Property:
                PropertyInfo pi = member as PropertyInfo;
                if (!pi.CanRead)
                {
                    throw Error.PropertyDoesNotHaveGetter(pi);
                }
                if (pi.GetGetMethod().IsStatic)
                {
                    throw Error.ArgumentMustBeInstanceMember();
                }
                memberType = pi.PropertyType;
                break;

            case MemberTypes.Method:
                MethodInfo method = member as MethodInfo;
                if (method.IsStatic)
                {
                    throw Error.ArgumentMustBeInstanceMember();
                }

                PropertyInfo prop = GetProperty(method);
                member     = prop;
                memberType = prop.PropertyType;
                break;

            default:
                throw Error.ArgumentMustBeFieldInfoOrPropertInfoOrMethod();
            }
        }
        private static void ValidateGettableFieldOrPropertyMember(MemberInfo member, out Type memberType)
        {
            FieldInfo fi = member as FieldInfo;

            if (fi == null)
            {
                PropertyInfo pi = member as PropertyInfo;
                if (pi == null)
                {
                    throw Error.ArgumentMustBeFieldInfoOrPropertInfo();
                }
                if (!pi.CanRead)
                {
                    throw Error.PropertyDoesNotHaveGetter(pi);
                }
                memberType = pi.PropertyType;
            }
            else
            {
                memberType = fi.FieldType;
            }
        }