Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ValidateAnonymousTypeMember()

static void System.Linq.Expressions.Expression< TDelegate >.ValidateAnonymousTypeMember ( ref MemberInfo member,
out Type memberType,
string paramName,
int index )
inlinestaticprivateinherited

Definition at line 4616 of file Expression.cs.

4617 {
4618 if (member is FieldInfo fieldInfo)
4619 {
4620 if (fieldInfo.IsStatic)
4621 {
4622 throw Error.ArgumentMustBeInstanceMember(paramName, index);
4623 }
4624 memberType = fieldInfo.FieldType;
4625 }
4626 else if (member is PropertyInfo propertyInfo)
4627 {
4628 if (!propertyInfo.CanRead)
4629 {
4630 throw Error.PropertyDoesNotHaveGetter(propertyInfo, paramName, index);
4631 }
4632 if (propertyInfo.GetGetMethod().IsStatic)
4633 {
4634 throw Error.ArgumentMustBeInstanceMember(paramName, index);
4635 }
4636 memberType = propertyInfo.PropertyType;
4637 }
4638 else
4639 {
4640 if (!(member is MethodInfo methodInfo))
4641 {
4642 throw Error.ArgumentMustBeFieldInfoOrPropertyInfoOrMethod(paramName, index);
4643 }
4644 if (methodInfo.IsStatic)
4645 {
4646 throw Error.ArgumentMustBeInstanceMember(paramName, index);
4647 }
4648 memberType = ((PropertyInfo)(member = GetProperty(methodInfo, paramName, index))).PropertyType;
4649 }
4650 }

References System.Linq.Expressions.Error.ArgumentMustBeFieldInfoOrPropertyInfoOrMethod(), System.Linq.Expressions.Error.ArgumentMustBeInstanceMember(), System.Reflection.GetProperty, System.Linq.index, and System.Linq.Expressions.Error.PropertyDoesNotHaveGetter().

Referenced by System.Linq.Expressions.Expression< TDelegate >.ValidateNewArgs().