Пример #1
0
 /// <summary>
 /// Creates a new object.
 /// </summary>
 /// <param name="parameterInfo"></param>
 /// <param name="defaultParserResolver"></param>
 public MethodParameter(ParameterInfo parameterInfo, TypeParserResolver defaultParserResolver)
 {
     Name                       = parameterInfo.Name;
     NormalisedName             = PathPart.Normalise(parameterInfo.Name);
     ParameterType              = parameterInfo.ParameterType;
     ElementType                = parameterInfo.ParameterType.IsArray ? parameterInfo.ParameterType.GetElementType() : null;
     IsArray                    = ElementType != null;
     IsOptional                 = parameterInfo.IsOptional;
     IsObject                   = !IsArray && ParameterType.IsClass && ParameterType != typeof(string);
     DefaultValue               = parameterInfo.DefaultValue;
     TypeParserResolver         = BuildTypeParserResolver(parameterInfo, defaultParserResolver);
     IsArrayPassedAsSingleValue = IsArray &&
                                  ElementType == typeof(byte) &&
                                  parameterInfo.GetCustomAttribute(typeof(ExpectArrayAttribute), inherit: false) == null;
 }
Пример #2
0
        private PathPart[] ExtractPathParts(MethodParameter[] methodParameters, RouteAttribute routeAttribute)
        {
            PathPart[] result = null;

            if (!String.IsNullOrEmpty(routeAttribute.Route))
            {
                var unescaped = OwinConvert.UrlDecode(routeAttribute.Route);
                result = unescaped
                         .Split('/')
                         .Select(r => PathPart.Create(r, methodParameters))
                         .ToArray();
            }

            return(result);
        }