Exemple #1
0
        public int GetArgCount(string path, string name)
        {
            AmlMethodInfo amlMethodInfo = null;

            try
            {
                path = path.Replace(".", "");
                name = name.Replace(".", "");
                if (path.StartsWith("\\"))
                {
                    path = path.Substring(1);
                }
                // build the path and name
                if (name.StartsWith("\\"))
                {
                    // full path
                    path          = name.Substring(1).Replace(".", "");
                    amlMethodInfo = FindMethod(path, "");
                }
                else if (name.StartsWith("^"))
                {
                    for (int idx = 0; idx < name.Length;)
                    {
                        if (name[idx] == '^')
                        {
                            // up to one level
                            path = path.Substring(0, path.Length - 4);
                            name = name.Substring(1);
                        }
                        else
                        {
                            break;
                        }
                    }
                    amlMethodInfo = FindMethod(path, name);
                }
                else
                {
                    amlMethodInfo = FindMethod(path, name);
                }
            } catch (Exception e)
            {
                Log.Logs(e.Message);
            }
            if (amlMethodInfo != null)
            {
                return(amlMethodInfo.ArgCount);
            }
            return(-1);
        }
Exemple #2
0
 private void MethodCollector(string path, string method, int argcount)
 {
     if (method[0] == '\\')
     {
         // skip the path
         method = method.Substring(1);
         AmlMethodInfo amlMethodInfo = new AmlMethodInfo(method, argcount);
         amlMethods.Add(amlMethodInfo);
     }
     else
     {
         for (int idx = 0; idx < method.Length;)
         {
             if (method[idx] == '^')
             {
                 // up to one level
                 path   = path.Substring(0, path.Length - 4);
                 method = method.Substring(1);
             }
             else
             {
                 break;
             }
         }
         if (path.Contains("^"))
         {
             AmlMethodInfo amlMethodInfo = new AmlMethodInfo(path + method, argcount);
             amlMethods.Add(amlMethodInfo);
         }
         else if (path.StartsWith("\\"))
         {
             path = path.Substring(1);
             AmlMethodInfo amlMethodInfo = new AmlMethodInfo(path + method, argcount);
             amlMethods.Add(amlMethodInfo);
         }
         else
         {
             AmlMethodInfo amlMethodInfo = new AmlMethodInfo(path + method, argcount);
             amlMethods.Add(amlMethodInfo);
         }
         //System.Diagnostics.Debug.WriteLine(path + method);
     }
 }