protected static object[] MarshalArgumentsStrict(System.Reflection.MethodInfo method, IValue[] arguments)
        {
            var parameters = method.GetParameters();

            object[] marshalledArgs = new object[parameters.Length];
            for (int i = 0; i < parameters.Length; i++)
            {
                if (i < arguments.Length)
                {
                    if (IsMissedArg(arguments[i]) && parameters[i].IsOptional)
                    {
                        marshalledArgs[i] = Type.Missing;
                    }
                    else
                    {
                        marshalledArgs[i] = ContextValuesMarshaller.ConvertParam(arguments[i], parameters[i].ParameterType);
                    }
                }
                else
                {
                    marshalledArgs[i] = Type.Missing;
                }
            }

            return(marshalledArgs);
        }
Exemple #2
0
            private static T ConvertParam <T>(IValue value, object def)
            {
                if (value == null || value.DataType == DataType.NotAValidValue)
                {
                    return((T)def);
                }

                return(ContextValuesMarshaller.ConvertParam <T>(value));
            }
        protected static object[] MarshalArgumentsStrict(IValue[] arguments, Type[] argumentsTypes)
        {
            if (argumentsTypes.Length < arguments.Length)
            {
                throw RuntimeException.TooManyArgumentsPassed();
            }

            object[] marshalledArgs = new object[arguments.Length];
            for (int i = 0; i < arguments.Length; i++)
            {
                marshalledArgs[i] = ContextValuesMarshaller.ConvertParam(arguments[i], argumentsTypes[i]);
            }

            return(marshalledArgs);
        }
Exemple #4
0
 private T ConvertParam <T>(IValue value)
 {
     return(ContextValuesMarshaller.ConvertParam <T>(value));
 }