/// <summary>
        /// entry point ,parameter "*.sln" from path
        /// </summary>
        /// <param name="filenamepath">filepath</param>
        public static Module.M_DomResolvent OpenDirectory(string filenamepath)
        {
            Module.M_DomResolvent resolvent = new OpenProject.Come.Module.M_DomResolvent();
            resolvent.FileName = Path.GetFileNameWithoutExtension(filenamepath);//set resolvent info
            resolvent.FilePath = filenamepath;

            List <Module.M_DomProject> projectlist = new List <OpenProject.Come.Module.M_DomProject>();


            string[]    projectdir = Directory.GetDirectories(Path.GetDirectoryName(filenamepath));//get project dir list
            XmlDocument document;

            foreach (string sub in projectdir)
            {
                string projectname = sub.Substring(sub.LastIndexOf("\\") + 1) + ".csproj";//
                string projectpath = Path.Combine(sub, projectname);
                if (!File.Exists(projectpath))
                {
                    continue;
                }

                document = new XmlDocument();
                document.Load(projectpath);//get project "*.xml" stream

                Module.M_DomProject project = GetProject(document.DocumentElement, Path.GetDirectoryName(projectpath));
                project.FileName = Path.GetFileNameWithoutExtension(projectpath);
                project.FilePath = projectpath;
                projectlist.Add(project);
            }
            resolvent.ProjectCollection = projectlist;
            return(resolvent);
        }
        //get project reflection info
        private static void GetReflectionAssemblyList(XmlNode documentelement, Module.M_DomProject proj)
        {
            XmlNode item = documentelement.ChildNodes[3];//reflection assembly list

            foreach (XmlNode node in item.ChildNodes)
            {
                string[] sub = node.Attributes["Include"].Value.Split(',');
                if (sub.Length > 0)
                {
                    proj._reflection.Add(sub[0]);
                }
            }
        }