protected bool InternalCollectProjectClasses(CodeNamespace parentCodeNamespace) { foreach (EnvDTE.CodeElement ce in parentCodeNamespace.Members) { if (ce.Kind == EnvDTE.vsCMElement.vsCMElementClass) { if (ce.InfoLocation == vsCMInfoLocation.vsCMInfoLocationProject) { SolutionCodeElement sce = new SolutionCodeElement() { CodeElementName = ce.Name, CodeElementFullName = ce.FullName, CodeElementRef = ce }; ComboItemsSourceCodeElements.Add(sce); } else { return(false); } } else { if (ce.Kind == EnvDTE.vsCMElement.vsCMElementNamespace) { CodeNamespace cn = (CodeNamespace)ce; if (!InternalCollectProjectClasses(cn)) { return(false); } } } } return(true); }
public virtual void CollectProjectClasses(SolutionProject sp) { SelectedCodeElement = null; if (ComboItemsSourceCodeElements == null) { ComboItemsSourceCodeElements = new ObservableCollection <SolutionCodeElement>(); } else { ComboItemsSourceCodeElements.Clear(); } }
public override void CollectProjectClasses(SolutionProject sp) { base.CollectProjectClasses(sp); if (sp == null) { return; } if (sp.ProjectRef == null) { return; } Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); if (sp.ProjectRef.CodeModel == null) { return; } foreach (EnvDTE.CodeElement ce in sp.ProjectRef.CodeModel.CodeElements) { if (ce.Kind == EnvDTE.vsCMElement.vsCMElementClass) { if (ce.InfoLocation == vsCMInfoLocation.vsCMInfoLocationProject) { if ((ce as CodeClass).IsDerivedFrom["System.Data.Entity.DbContext"] || (ce as CodeClass).IsDerivedFrom["Microsoft.EntityFrameworkCore.DbContext"]) { SolutionCodeElement sce = new SolutionCodeElement() { CodeElementName = ce.Name, CodeElementFullName = ce.FullName, CodeElementRef = ce }; ComboItemsSourceCodeElements.Add(sce); } } } else { if (ce.Kind == EnvDTE.vsCMElement.vsCMElementNamespace) { EnvDTE.CodeNamespace cn = (EnvDTE.CodeNamespace)ce; InternalCollectProjectClasses(cn); } } } }
public override void CollectProjectClasses(SolutionProject sp) { base.CollectProjectClasses(sp); if (sp == null) { return; } if (sp.ProjectRef == null) { return; } if (sp.ProjectRef.CodeModel == null) { return; } List <SolutionCodeElement> localList = new List <SolutionCodeElement>(); foreach (EnvDTE.CodeElement ce in sp.ProjectRef.CodeModel.CodeElements) { if (ce.Kind == EnvDTE.vsCMElement.vsCMElementClass) { if (ce.InfoLocation == vsCMInfoLocation.vsCMInfoLocationProject) { SolutionCodeElement sce = new SolutionCodeElement() { CodeElementName = ce.Name, CodeElementFullName = ce.FullName, CodeElementRef = ce }; //ComboItemsSourceCodeElements.Add(sce); localList.Add(sce); } } else { if (ce.Kind == EnvDTE.vsCMElement.vsCMElementNamespace) { CodeNamespace cn = (CodeNamespace)ce; InternalCollectProjectClasses(cn, localList); } } } localList.Sort((a, b) => string.Compare(a.CodeElementFullName, b.CodeElementFullName)); localList.ForEach(ce => ComboItemsSourceCodeElements.Add(ce)); }
protected bool InternalCollectProjectClasses(EnvDTE.CodeNamespace parentCodeNamespace) { foreach (EnvDTE.CodeElement ce in parentCodeNamespace.Members) { if (ce.Kind == EnvDTE.vsCMElement.vsCMElementClass) { if (ce.InfoLocation == vsCMInfoLocation.vsCMInfoLocationProject) { if ((ce as CodeClass).IsDerivedFrom["System.Data.Entity.DbContext"] || (ce as CodeClass).IsDerivedFrom["Microsoft.EntityFrameworkCore.DbContext"]) { //////// additional checkup here SolutionCodeElement sce = new SolutionCodeElement() { CodeElementName = ce.Name, CodeElementFullName = ce.FullName, CodeElementRef = ce }; ComboItemsSourceCodeElements.Add(sce); } } else { return(false); } } else { if (ce.Kind == EnvDTE.vsCMElement.vsCMElementNamespace) { EnvDTE.CodeNamespace cn = (EnvDTE.CodeNamespace)ce; if (!InternalCollectProjectClasses(cn)) { return(false); } } } } return(true); }