private bool CheckInheritsFrom(CodeElementEx codeClass) { string classFullName = NormalizeName(codeClass.RealObject.FullName); if (classFullName.Equals(this.inheritsFromClassName, StringComparison.InvariantCultureIgnoreCase)) { return(true); } if (codeClass.Bases == null) { return(false); } foreach (CodeElement codeBase in codeClass.Bases) { string fullBaseName = NormalizeName(codeBase.FullName); if (fullBaseName.Equals(this.inheritsFromClassName, StringComparison.InvariantCultureIgnoreCase)) { return(true); } else if (CheckInheritsFrom(new CodeElementEx(codeBase))) { return(true); } } return(false); }
bool ICodeModelEditorFilter.Filter(EnvDTE.CodeElement codeElement) { AttributeTargets target = GetTarget(codeElement); if ((target & this.attributeUsage) != 0) { CodeElements attributes = new CodeElementEx(codeElement).Attributes; foreach (CodeElement attribute in attributes) { try { if (attribute.FullName.Equals( this.attributeType.FullName, StringComparison.InvariantCultureIgnoreCase)) { return(false); } } catch { } } return(true); } return(false); }
/// <summary> /// Searches for the <see cref="CodeElement"/> /// </summary> public override void Execute() { CodeElements elements = new CodeElementEx(this.ParentElement).Members; foreach (CodeElement codeElement in elements) { if (codeElement.Name.Equals(this.ElementName, StringComparison.InvariantCultureIgnoreCase)) { this.CodeElement = codeElement; return; } } }
bool ICodeModelEditorFilter.Filter(EnvDTE.CodeElement codeElement) { CodeElementEx codeElementEx = new CodeElementEx(codeElement); if (codeElementEx.Bases != null) { return(!CheckInheritsFrom(codeElementEx)); } else if (codeElement is CodeNamespace) { return(!HasClassInheritFrom((CodeNamespace)codeElement)); } // Filter everything else return(true); }
private bool HasClassInheritFrom(CodeNamespace codeNamespace) { foreach (CodeElement codeElement in codeNamespace.Members) { CodeElementEx codeElementEx = new CodeElementEx(codeElement); if (codeElementEx.Bases != null) { if (CheckInheritsFrom(codeElementEx)) { return(true); } } else if (codeElement is CodeNamespace) { if (HasClassInheritFrom((CodeNamespace)codeElement)) { return(true); } } } return(false); }