Beispiel #1
0
        bool CheckNameAgainstFilter(string name, MemberFilterFlags filter)
        {
            if ((filter & MemberFilterFlags.Namespaces) == MemberFilterFlags.None && name.StartsWith("N:"))
            {
                return(false);
            }

            if ((filter & MemberFilterFlags.Types) == MemberFilterFlags.None && name.StartsWith("T:"))
            {
                return(false);
            }

            if ((filter & MemberFilterFlags.Methods) == MemberFilterFlags.None && name.StartsWith("M:"))
            {
                return(false);
            }

            if ((filter & MemberFilterFlags.Properties) == MemberFilterFlags.None && name.StartsWith("P:"))
            {
                return(false);
            }

            if ((filter & MemberFilterFlags.Fields) == MemberFilterFlags.None && name.StartsWith("F:"))
            {
                return(false);
            }

            if ((filter & MemberFilterFlags.Events) == MemberFilterFlags.None && name.StartsWith("E:"))
            {
                return(false);
            }

            return(true);
        }
Beispiel #2
0
		bool CheckNameAgainstFilter(string name, MemberFilterFlags filter)
		{
			if((filter & MemberFilterFlags.Namespaces) == MemberFilterFlags.None && name.StartsWith("N:"))
			{
				return false;
			}

			if((filter & MemberFilterFlags.Types) == MemberFilterFlags.None && name.StartsWith("T:"))
			{
				return false;
			}

			if((filter & MemberFilterFlags.Methods) == MemberFilterFlags.None && name.StartsWith("M:"))
			{
				return false;
			}

			if((filter & MemberFilterFlags.Properties) == MemberFilterFlags.None && name.StartsWith("P:"))
			{
				return false;
			}

			if((filter & MemberFilterFlags.Fields) == MemberFilterFlags.None && name.StartsWith("F:"))
			{
				return false;
			}

			if((filter & MemberFilterFlags.Events) == MemberFilterFlags.None && name.StartsWith("E:"))
			{
				return false;
			}

			return true;
		}
Beispiel #3
0
		public void Process(string assemblyPath, IEnumerable<string> tagsPresent, IEnumerable<string> tagsMissing, MemberFilterFlags filter)
		{
			ResultsList.Items.Clear();
			string xmlPath = Path.ChangeExtension(assemblyPath, "xml");

			XmlDocument docs = new XmlDocument();
			docs.Load(xmlPath);

			XmlNodeList nodes = docs.SelectNodes("/doc/members/member");
			foreach(XmlNode node in nodes)
			{
				string name = node.Attributes["name"].Value;
				if(!CheckNameAgainstFilter(name, filter))
					continue;

				bool addItem = true;

				//check if it contains any tags that are supposed to be missing
				foreach(string tag in tagsMissing)
				{
					XmlNode tagNode = node.SelectSingleNode(tag);
					if(tagNode != null && tagNode.InnerText != string.Empty)
					{
						addItem = false;
						break;
					}
				}

				//If we've already decided not to add this, don't keep checking the node
				if(!addItem)
					continue;

				//check if it's missing any tags that are supposed to be present
				foreach(string tag in tagsPresent)
				{
					XmlNode tagNode = node.SelectSingleNode(tag);
					if(tagNode == null || tagNode.InnerText == string.Empty)
					{
						addItem = false;
						break;
					}
				}

				//it checks out, add it to the list
				if(addItem)
					ResultsList.Items.Add(name);
			}

			m_Symbols = new SymbolEngine(assemblyPath);
		}
Beispiel #4
0
        private void SearchButton_Click(object sender, EventArgs e)
        {
            MemberFilterFlags filter = MemberFilterFlags.None;

            if (NamespacesCheckBox.Checked)
            {
                filter |= MemberFilterFlags.Namespaces;
            }
            if (TypesCheckBox.Checked)
            {
                filter |= MemberFilterFlags.Types;
            }
            if (MethodsCheckBox.Checked)
            {
                filter |= MemberFilterFlags.Methods;
            }
            if (PropertiesCheckBox.Checked)
            {
                filter |= MemberFilterFlags.Properties;
            }
            if (FieldsCheckBox.Checked)
            {
                filter |= MemberFilterFlags.Fields;
            }
            if (EventsCheckBox.Checked)
            {
                filter |= MemberFilterFlags.Events;
            }

            ScanResultsWindow results = new ScanResultsWindow();

            results.Show();
            results.Process(AssemblyPathTextBox.Text,
                            from object present in TagsPresentList.Items select(string) present,
                            from object missing in TagsMissingList.Items select(string) missing,
                            filter
                            );
        }
Beispiel #5
0
        public void Process(string assemblyPath, IEnumerable <string> tagsPresent, IEnumerable <string> tagsMissing, MemberFilterFlags filter)
        {
            ResultsList.Items.Clear();
            string xmlPath = Path.ChangeExtension(assemblyPath, "xml");

            XmlDocument docs = new XmlDocument();

            docs.Load(xmlPath);

            XmlNodeList nodes = docs.SelectNodes("/doc/members/member");

            foreach (XmlNode node in nodes)
            {
                string name = node.Attributes["name"].Value;
                if (!CheckNameAgainstFilter(name, filter))
                {
                    continue;
                }

                bool addItem = true;

                //check if it contains any tags that are supposed to be missing
                foreach (string tag in tagsMissing)
                {
                    XmlNode tagNode = node.SelectSingleNode(tag);
                    if (tagNode != null && tagNode.InnerText != string.Empty)
                    {
                        addItem = false;
                        break;
                    }
                }

                //If we've already decided not to add this, don't keep checking the node
                if (!addItem)
                {
                    continue;
                }

                //check if it's missing any tags that are supposed to be present
                foreach (string tag in tagsPresent)
                {
                    XmlNode tagNode = node.SelectSingleNode(tag);
                    if (tagNode == null || tagNode.InnerText == string.Empty)
                    {
                        addItem = false;
                        break;
                    }
                }

                //it checks out, add it to the list
                if (addItem)
                {
                    ResultsList.Items.Add(name);
                }
            }

            m_Symbols = new SymbolEngine(assemblyPath);
        }