Esempio n. 1
0
        public static string[] SerializeParameterTypes(Type[] parametersTypes)
        {
            // not using linq on purpose

            var names = new string[parametersTypes.Length];

            for (int i = 0; i < parametersTypes.Length; i++)
            {
                names[i] = TypeShortnameLookup.GetName(parametersTypes[i]);
            }

            return(names);
        }
Esempio n. 2
0
        public static Type[] DeserializeParameterTypes(string[] typeNames)
        {
            if (typeNames == null || typeNames.Length == 0)
            {
                return(Type.EmptyTypes);
            }

            // not using linq on purpose

            var types = new Type[typeNames.Length];

            for (int i = 0; i < typeNames.Length; i++)
            {
                types[i] = TypeShortnameLookup.GetType(typeNames[i]);
            }

            return(types);
        }
Esempio n. 3
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);
        }