예제 #1
0
        public bool include(string _input, string methodName)
        {
            if (Scanner.FILENAME.Contains("AxForm"))
            {
                return(false);
            }
            if (Scanner.FILENAME.Contains("AxQuery"))
            {
                return(false);
            }
            if (Scanner.FILENAME.Contains("_Extension"))
            {
                return(false);
            }

            _input = _input.ToLowerInvariant();
            if (_input.Contains("[subscribesto"))
            {
                return(false);
            }
            if (_input.Contains("[form"))
            {
                return(false);
            }
            if (_input.Contains("[prehandlerfor"))
            {
                return(false);
            }
            if (_input.Contains("[posthandlerfor"))
            {
                return(false);
            }

            int pos = _input.IndexOf("CData");

            string source = _input.Substring(pos + 6);

            string[] lines     = source.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
            string   firstLine = "";

            for (int i = 0; i < lines.Length; i++)
            {
                string line = lines[i].Trim();
                if (line == String.Empty ||
                    lines[i].Trim().StartsWith("//"))
                {
                    continue;
                }

                if (!line.Contains("("))
                {
                    continue;
                }

                firstLine = line;
                break;
            }

            if (firstLine.Contains("private ") ||
                firstLine.Contains("static ") ||
                firstLine.Contains("internal "))
            {
                return(false);
            }

            if (source.Contains("super("))
            {
                return(true);
            }

            if (MetaData.isMethodOverridding(Path.GetFileNameWithoutExtension(Scanner.FILENAME), methodName))
            {
                return(true);
            }

            return(false);
        }