static private PropertyDoesNotHaveSetter ( object p0, string paramName ) : Exception | ||
p0 | object | |
paramName | string | |
Résultat | Exception |
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 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) { var fi = member as FieldInfo; if (fi == null) { var pi = member as PropertyInfo; if (pi == null) { throw Error.ArgumentMustBeFieldInfoOrPropertInfo(); } if (!pi.CanWrite) { throw Error.PropertyDoesNotHaveSetter(pi); } memberType = pi.PropertyType; } else { memberType = fi.FieldType; } }