示例#1
0
        void ConvertCOMThread(Object stateInfo)
        {
            object[]  param     = (object[])stateInfo;
            object    sender    = param[0];
            ArrayList refrences = param[1] as ArrayList;
            TreeNode  node      = param[2] as TreeNode;

            BeginInvoke(new MethodInvoker(delegate { tsMessage.Text = "Please wait..."; }));
            foreach (ReferenceProjectItem reference in refrences)
            {
                try
                {
                    if (reference.ItemType == ItemType.COMReference)
                    {
                        if (Path.IsPathRooted(reference.FileName))
                        {
                            m_AIMSProject.AddProjectItem(reference);
                        }
                        else
                        {
                            ArrayList addedRefs = ImportCom(reference as ComReferenceProjectItem);
                            foreach (ReferenceProjectItem refs in addedRefs)
                            {
                                m_AIMSProject.AddProjectItem(refs);
                                BeginInvoke(new MethodInvoker(delegate
                                {
                                    TreeNode refNode = node.Nodes.Add(refs.Name);
                                    refNode.ImageKey = "Reference.ico";
                                    refNode.Tag      = NodeType.Reference;
                                }));
                            }
                        }
                    }
                    else if (reference.ItemType == ItemType.Reference)
                    {
                        m_AIMSProject.AddProjectItem(reference);
                        BeginInvoke(new MethodInvoker(delegate
                        {
                            TreeNode refNode = node.Nodes.Add(reference.Name);
                            refNode.ImageKey = "Reference.ico";
                            refNode.Tag      = NodeType.Reference;
                        }));
                    }
                }
                catch (Exception Ex)
                {
                    MessageBox.Show(Ex.Message);
                }
                BeginInvoke(new MethodInvoker(delegate { tsMessage.Text = "Ready"; }));
            }
        }
示例#2
0
        /// <summary>
        /// 降XElement元素转换成工程子项
        /// </summary>
        /// <param name="rootElement">工程文件中包含的根元素</param>
        /// <param name="project">子项属于的工程</param>
        private static void ParseToProjectItem(XElement rootElement, IProject project)
        {
            IEnumerable <XElement> element  = from el in rootElement.Elements() select el;
            IEnumerable <XElement> element1 = element.Where(el => el.Name == "Items");

            foreach (XElement e1 in element1.Nodes <XElement>())
            {
                int    count = e1.Elements().Count <XElement>();
                string type  = e1.Attribute("Type").Value;
                string name  = e1.Attribute("Name").Value;

                if (count == 0)//CustomProjectItem
                {
                    project.AddProjectItem(new CustomProjectItem(project, new ItemType(type), name));
                }
                else//DirectoryProjectItem
                {
                    DirectoryProjectItem projectItem = new DirectoryProjectItem(project, new ItemType(type), name);
                    project.AddProjectItem(projectItem);
                    BuildDirectoryItem(project, projectItem, e1);
                }
            }
        }
示例#3
0
        /// <summary>
        /// 降XElement元素转换成工程子项
        /// </summary>
        /// <param name="rootElement">工程文件中包含的根元素</param>
        /// <param name="project">子项属于的工程</param>
        private static void ParseToProjectItem(XElement rootElement,IProject project)
        {
            IEnumerable<XElement> element = from el in rootElement.Elements() select el;
            IEnumerable<XElement> element1 = element.Where(el => el.Name == "Items");
            foreach (XElement e1 in element1.Nodes<XElement>())
            {
                int count = e1.Elements().Count<XElement>();
                string type = e1.Attribute("Type").Value;
                string name = e1.Attribute("Name").Value;

                if (count == 0)//CustomProjectItem
                {
                    project.AddProjectItem(new CustomProjectItem(project, new ItemType(type), name));
                }
                else//DirectoryProjectItem
                {
                    DirectoryProjectItem projectItem = new DirectoryProjectItem(project, new ItemType(type), name);
                    project.AddProjectItem(projectItem);
                    BuildDirectoryItem(project, projectItem, e1);
                }
            }
        }