コード例 #1
0
        private static List <ActionParameterInfo> GetActionParameters(MethodInfo action)
        {
            var result     = new List <ActionParameterInfo>();
            var parameters = action.GetParameters();

            foreach (var parameterInfo in parameters)
            {
                var param = new ActionParameterInfo();
                param.Name = param.OriginalName = parameterInfo.Name;
                param.Type = TypeConverter.GetTypeScriptName(parameterInfo.ParameterType);

                var fromUri = parameterInfo.GetCustomAttributes <FromUriAttribute>().FirstOrDefault();
                if (fromUri != null)
                {
                    param.Name = fromUri.Name ?? param.Name;
                }
                var fromBody = parameterInfo.GetCustomAttributes <FromBodyAttribute>().FirstOrDefault();
                // Parameters are from the URL unless specified by a [FromBody] attribute.
                param.FromUri = fromBody == null;
                param.ClrType = parameterInfo.ParameterType;
                param.Name    = param.Name.ToCamelCase();
                result.Add(param);
            }

            return(result);
        }
コード例 #2
0
        private static List <ActionParameterInfo> GetActionParameters(MethodInfo action)
        {
            var result     = new List <ActionParameterInfo>();
            var parameters = action.GetParameters();

            foreach (var parameterInfo in parameters)
            {
                var param = new ActionParameterInfo();
                param.Name = parameterInfo.Name;
                param.Type = TypeConverter.GetTypeScriptName(parameterInfo.ParameterType);

                var fromUri = parameterInfo.GetCustomAttributes <FromUriAttribute>().FirstOrDefault();
                if (fromUri != null)
                {
                    param.Name = fromUri.Name ?? param.Name;
                }
                var fromBody = parameterInfo.GetCustomAttributes <FromBodyAttribute>().FirstOrDefault();
                // Parameters are from the URL unless specified by a [FromBody] attribute.
                param.FromUri = fromBody == null;

                //TODO: Support route parameters that are not 'id', might be hard as will need to parse routing setup
                if (parameterInfo.Name.Equals("id", StringComparison.OrdinalIgnoreCase))
                {
                    param.RouteProperty = true;
                }
                param.Name = param.Name.ToCamelCase();
                result.Add(param);
            }

            return(result);
        }