ArgumentMustBeFieldInfoOrPropertyInfo() статический приватный Метод

ArgumentException with message like "Argument must be either a FieldInfo or PropertyInfo"
static private ArgumentMustBeFieldInfoOrPropertyInfo ( string paramName ) : Exception
paramName string
Результат System.Exception
Пример #1
0
        private static void ValidateSettableFieldOrPropertyMember(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.CanWrite)
                {
                    throw Error.PropertyDoesNotHaveSetter(pi, nameof(member));
                }
                memberType = pi.PropertyType;
            }
            else
            {
                if (fi.DeclaringType == null)
                {
                    throw Error.NotAMemberOfAnyType(fi, nameof(member));
                }

                memberType = fi.FieldType;
            }
        }
Пример #2
0
        private static void ValidateSettableFieldOrPropertyMember(MemberInfo member, out Type memberType)
        {
            Type?decType = member.DeclaringType;

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

            // Null paramName as there are two paths here with different parameter names at the API
            TypeUtils.ValidateType(decType, null);
            switch (member)
            {
            case PropertyInfo pi:
                if (!pi.CanWrite)
                {
                    throw Error.PropertyDoesNotHaveSetter(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)
        {
            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);

#if __MonoCS__
            if (member is PropertyInfo pi)
            {
                if (!pi.CanRead)
                {
                    throw Error.PropertyDoesNotHaveGetter(pi, nameof(member));
                }

                memberType = pi.PropertyType;
            }
            else if (member is FieldInfo fi)
            {
                memberType = fi.FieldType;
            }
            else
            {
                throw Error.ArgumentMustBeFieldInfoOrPropertyInfo(nameof(member));
            }
#else
            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));
            }
#endif
        }
Пример #4
0
        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();
                }
                if (!pi.CanRead)
                {
                    throw Error.PropertyDoesNotHaveGetter(pi);
                }
                memberType = pi.PropertyType;
            }
            else
            {
                memberType = fi.FieldType;
            }
        }