static private ArgumentMustBeFieldInfoOrPropertyInfo ( string paramName ) : |
||
paramName | string | |
return |
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; } }
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 }
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; } }