System.Linq.Expressions.Expression.ValidateAccessor C# (CSharp) Method

ValidateAccessor() private static method

private static ValidateAccessor ( Expression instance, MethodInfo method, ParameterInfo indexes, ReadOnlyCollection &arguments, string paramName ) : void
instance Expression
method MethodInfo
indexes ParameterInfo
arguments ReadOnlyCollection
paramName string
return void
        private static void ValidateAccessor(Expression instance, MethodInfo method, ParameterInfo[] indexes, ref ReadOnlyCollection<Expression> arguments, string paramName)
        {
            ContractUtils.RequiresNotNull(arguments, nameof(arguments));

            ValidateMethodInfo(method, nameof(method));
            if ((method.CallingConvention & CallingConventions.VarArgs) != 0) throw Error.AccessorsCannotHaveVarArgs(nameof(method));
            if (method.IsStatic)
            {
                if (instance != null) throw Error.OnlyStaticMethodsHaveNullInstance();
            }
            else
            {
                if (instance == null) throw Error.OnlyStaticMethodsHaveNullInstance();
                RequiresCanRead(instance, nameof(instance));
                ValidateCallInstanceType(instance.Type, method);
            }

            ValidateAccessorArgumentTypes(method, indexes, ref arguments, paramName);
        }
Expression