예제 #1
0
        public static RequestAttributeType GetRequestAttributeType(this AttributeSyntax self)
        {
            string className = self.GetClassName();

            if (self.IsInAttributeSet(HttpMethodAttributeNames))
            {
                return(RequestAttributeType.HttpMethod);
            }
            else if (self.IsInAttributeSet(FormatterAttributeNames))
            {
                return(RequestAttributeType.Formatter);
            }
            else
            {
                string fullClassName = className + (nameof(Attribute));
                switch (fullClassName)
                {
                case nameof(NameAttribute):
                    return(RequestAttributeType.Name);

                case nameof(UriTemplatePrefixAttribute):
                    return(RequestAttributeType.UriTemplatePrefix);

                case nameof(UriTemplateSuffixAttribute):
                    return(RequestAttributeType.UriTemplateSuffix);

                case nameof(HeaderAttribute):
                    return(RequestAttributeType.Header);

                case nameof(HeaderValueAttribute):
                    return(RequestAttributeType.HeaderValue);

                case nameof(ContentAttribute):
                    return(RequestAttributeType.Content);

                case nameof(FormUrlEncodedContentAttribute):
                    return(RequestAttributeType.FormUrlEncodedContent);

                default:
                    return(default);
                }
            }
        }