Example #1
0
        public static ResponseMessage BuildResponse(Tuple <object, Type> result)
        {
            if (result.Item2 == typeof(void))
            {
                return(ResponseMessage.Empty);
            }

            if (ReflectionUtils.IsCollectionType(result.Item2))
            {
                var elements   = ReflectionUtils.NormalizeToArray(result.Item1, result.Item2);
                var serialized = Serialization.SerializeArray(elements);
                return(new ResponseMessage(serialized, TypeShortnameLookup.GetName(result.Item2), null));
            }
            if (result.Item1 != null)
            {
                var tuple = Serialization.BuildParamTuple(result.Item2, result.Item1);
                return(new ResponseMessage(tuple.SerializedValue, tuple.TypeName, null));
            }

            return(ResponseMessage.Empty);
        }
Example #2
0
        public static ParamTuple[] ParametersToParamTuple(object[] arguments, Type[] parametersTypes)
        {
            if (arguments == null)
            {
                return(null);
            }
            if (parametersTypes.Length == 0)
            {
                return(null);
            }

            // Not using linq for perf reasons

            var retArray = new ParamTuple[parametersTypes.Length];

            for (int i = 0; i < retArray.Length; i++)
            {
                // var pTuple = Serialization.BuildParamTuple(parametersTypes[i], arguments[i]);
                var pTuple = Serialization.BuildParamTuple(arguments[i].GetType(), arguments[i]);
                retArray[i] = pTuple;
            }

            return(retArray);
        }