예제 #1
0
        public string EndPoint(MethodDeclarationSyntax method)
        {
            StringBuilder url = new StringBuilder(FullClassName.Replace('.', '/'));

            url.Append("/");
            url.Append(method.Identifier.ToString());

            bool appendDash = true;

            if (!method.IsStatic())
            {
                url.Append("-");
                url.Append(ClassName);
                appendDash = false;
            }

            for (int i = 0; i < method.ParameterList.Parameters.Count; i++)
            {
                if (appendDash)
                {
                    url.Append("-");
                }
                else
                {
                    url.Append("_");
                }
                appendDash = false;
                string name          = method.ParameterList.Parameters[i].Type.ToString();
                var    qualifiedType = method.ParameterList.Parameters[i].Type as QualifiedNameSyntax;
                var    genericType   = method.ParameterList.Parameters[i].Type as GenericNameSyntax;
                if (genericType == null && qualifiedType != null)
                {
                    genericType = qualifiedType.Right as GenericNameSyntax;
                }
                if (genericType != null)
                {
                    name = genericType.TypeArgumentList.Arguments.ToString() + "Array";
                }
                if (name.Contains("IEnumerable"))
                {
                    int bh = 0;
                }
                name = name.Replace("[]", "Array").Replace("Int32", "Int").Replace("Boolean", "Bool");

                url.Append(name);
            }

            if (url.ToString().Contains("<"))
            {
                int bh = 0;
            }
            return(url.ToString().ToLower());
        }
예제 #2
0
 int IComparable <ClassReference> .CompareTo(ClassReference classReference)
 {
     return(FullClassName.CompareTo(classReference.FullClassName));
 }
예제 #3
0
 public override int GetHashCode()
 {
     return(FullClassName != null ? FullClassName.GetHashCode() : 0);
 }