void LoadProjectModules()
        {
            try
            {
                var projects = GetProjects();

                List<ProjectModuleInfo> projectModules = new List<ProjectModuleInfo>();

                foreach (var project in projects)
                {
                    foreach (ProjectItem item in project.ProjectItems)
                    {
                        FileCodeModel2 codeModel = (FileCodeModel2)item.FileCodeModel;
                        if (codeModel != null)
                        {
                            CodeClass2 codeClass = GetCodeClass(codeModel.CodeElements);
                            if (codeClass != null)
                            {
                                if (IsIModule(codeClass.ImplementedInterfaces))
                                {
                                    var moduleInfo = new ProjectModuleInfo();
                                    moduleInfo.ModuleName = codeClass.Name;
                                    moduleInfo.AssemblyFile = String.Format("{0}.dll", project.Properties.Item("AssemblyName").Value);
                                    moduleInfo.ModuleType = GetModuleType(project, codeClass);
                                    projectModules.Add(moduleInfo);
                                    break;
                                }
                            }
                        }
                    }
                }

                _designer.ProjectModules = new System.Collections.ObjectModel.ObservableCollection<ProjectModuleInfo>(projectModules);
            }
            catch(Exception ex)
            {
                string message = "The was a problem reading the projects in this solution. Build the solution and try again.";
                string title = "Error Loading Projects";

                // Show a message box to prove we were here
                VsShellUtilities.ShowMessageBox(
                    this,
                    message,
                    title,
                    OLEMSGICON.OLEMSGICON_INFO,
                    OLEMSGBUTTON.OLEMSGBUTTON_OK,
                    OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST);
            }
        }
        void LoadProjectModules()
        {
            var projects = GetProjects();

            List<ProjectModuleInfo> projectModules = new List<ProjectModuleInfo>();

            foreach (var project in projects)
            {
                foreach (ProjectItem item in project.ProjectItems)
                {
                    FileCodeModel2 codeModel = (FileCodeModel2)item.FileCodeModel;
                    if (codeModel != null)
                    {
                        CodeClass2 codeClass = GetCodeClass(codeModel.CodeElements);
                        if (codeClass != null)
                        {
                            if (IsIModule(codeClass.ImplementedInterfaces))
                            {
                                var moduleInfo = new ProjectModuleInfo();
                                moduleInfo.ModuleName = codeClass.Name;
                                moduleInfo.AssemblyFile = String.Format("{0}.dll", project.Properties.Item("AssemblyName").Value);
                                moduleInfo.ModuleType = GetModuleType(project, codeClass);
                                projectModules.Add(moduleInfo);
                                break;
                            }
                        }
                    }
                }
            }

            _designer.ProjectModules = new System.Collections.ObjectModel.ObservableCollection<ProjectModuleInfo>(projectModules);
        }