/// <summary> /// Adds all members of a class to a dictionary, taking into account partial classes. /// </summary> /// <param name="parentClass">The class to collect.</param> /// <returns>Returns the dictionary of class members.</returns> private static Dictionary <string, List <Element> > CollectClassMembers(ClassBase parentClass) { Param.AssertNotNull(parentClass, "parentClass"); Dictionary <string, List <Element> > members = new Dictionary <string, List <Element> >(); if (parentClass.ContainsModifier(TokenType.Partial)) { foreach (ClassBase @class in parentClass.PartialElementCollection) { CollectClassMembersAux(@class, members); } } else { CollectClassMembersAux(parentClass, members); } return(members); }
/// <summary> /// Checks the Xml header block of the given class for consistency with the class. /// </summary> /// <param name="classElement">The element to parse.</param> /// <param name="settings">The analyzer settings.</param> private void CheckClassElementHeader(ClassBase classElement, AnalyzerSettings settings) { Param.AssertNotNull(classElement, "classElement"); Param.Ignore(settings); AnalyzerSettings adjustedSettings = settings; adjustedSettings.RequireFields = false; if (classElement.ContainsModifier(TokenType.Partial)) { // This is a partial element. Check for the possible partial element header types. this.CheckHeader(classElement, adjustedSettings, true); } else { // Just perform the regular set of checks on the header. this.CheckHeader(classElement, adjustedSettings, false); } }