public void VisitMethod(MethodDefinition method) { if (!m_needsCheck || method.Name.StartsWith("yy")) { // if (!m_needsCheck || method.Name.StartsWith("yy") || method.IsCompilerGenerated() || method.ToString().Contains("AnonymousMethod")) return; } if (method.Name.StartsWith("<")) { return; } // Method name must be PascalCase. if (!method.IsSpecialName && !NamingUtils.IsPascalCase(method.Name)) { m_details += "Method: " + method.Name + ". "; } // Parameters must be camelCase. foreach (ParameterDefinition param in method.Parameters) { if (!NamingUtils.IsCamelCase(param.Name)) { m_details = string.Format("{0}Argument: {1}. ", m_details, param.Name); } } }
public void VisitField(FieldDefinition field) { if (!m_needsCheck) { return; } if (field.Name.IndexOf("<") >= 0) // auto-property { return; } if (field.Name[0] == '$') { return; } // Protected and private fields must be camelCase. Public and internal fields must // be PascalCase. if ((m_type.Attributes & TypeAttributes.Serializable) != TypeAttributes.Serializable) { if ((field.Attributes & FieldAttributes.FieldAccessMask) == FieldAttributes.Public) { if (!NamingUtils.IsPascalCase(field.Name)) { m_details = string.Format("{0}Public Field: {1}. ", m_details, field.Name); } } else if ((field.Attributes & FieldAttributes.FieldAccessMask) == FieldAttributes.Assembly) { if (!NamingUtils.IsPascalCase(field.Name)) { m_details = string.Format("{0}Internal Field: {1}. ", m_details, field.Name); } } else if ((field.Attributes & FieldAttributes.Literal) == FieldAttributes.Literal) { if (!NamingUtils.IsPascalCase(field.Name)) { m_details = string.Format("{0}Constant Field: {1}. ", m_details, field.Name); } } else { if (!NamingUtils.IsCamelCase(field.Name)) { m_details = string.Format("{0}Field: {1}. ", m_details, field.Name); } // mUpperCase is not legit if (field.Name.Length > 1) { if (field.Name[0] == 'm' && char.IsUpper(field.Name[1])) { m_details = string.Format("{0}Field: {1}. ", m_details, field.Name); } } } } }
public void VisitJurassicFields(FieldDefinition field) { if (!NeedsCheck) { return; } if (field.IsPublic) { return; } if (field.Name.IndexOf("<") >= 0) // auto-property { return; } if (field.Name[0] == '$') { return; } if ((Type.Attributes & TypeAttributes.Serializable) != TypeAttributes.Serializable) { // Public are pascal cased. if ((field.Attributes & FieldAttributes.FieldAccessMask) == FieldAttributes.Public) { if (!NamingUtils.IsPascalCase(field.Name)) { Details = string.Format("{0}Public Field: {1}. ", Details, field.Name); } } // Internal are pascal cased. else if ((field.Attributes & FieldAttributes.FieldAccessMask) == FieldAttributes.Assembly) { if (!NamingUtils.IsPascalCase(field.Name)) { Details = string.Format("{0}Internal Field: {1}. ", Details, field.Name); } } // Literals are pascal cased. else if ((field.Attributes & FieldAttributes.Literal) == FieldAttributes.Literal) { if (!NamingUtils.IsPascalCase(field.Name)) { Details = string.Format("{0}Constant Field: {1}. ", Details, field.Name); } } // Protected and private static are ms_fooBar, s_fooBar, or sFooBar, or msFooBar. else if (field.IsStatic) { if (field.Name.StartsWith("ms_")) { if (!NamingUtils.IsCamelCase(field.Name.Substring(3))) { Details = string.Format("{0}Static Field: {1}. ", Details, field.Name); } } else if (field.Name.StartsWith("s_")) { if (!NamingUtils.IsCamelCase(field.Name.Substring(2))) { Details = string.Format("{0}Static Field: {1}. ", Details, field.Name); } } else if (field.Name.StartsWith("s")) { if (!NamingUtils.IsPascalCase(field.Name.Substring(1))) { Details = string.Format("{0}Static Field: {1}. ", Details, field.Name); } } else if (field.Name.StartsWith("ms")) { if (!NamingUtils.IsPascalCase(field.Name.Substring(2))) { Details = string.Format("{0}Static Field: {1}. ", Details, field.Name); } } else { Details = string.Format("{0}Static Field: {1}. ", Details, field.Name); } } // Protected and private fields must be m_fooBar or mFooBar. else { if (field.FieldType.FullName.Contains("System.EventHandler")) // events are special { if (!NamingUtils.IsPascalCase(field.Name)) { Details = string.Format("{0}Field: {1}. ", Details, field.Name); } } else if (field.Name.StartsWith("m_")) { if (!NamingUtils.IsCamelCase(field.Name.Substring(2))) { Details = string.Format("{0}Field: {1}. ", Details, field.Name); } } else if (field.Name.StartsWith("m")) { if (!NamingUtils.IsPascalCase(field.Name.Substring(2))) { Details = string.Format("{0}Field: {1}. ", Details, field.Name); } } else { Details = string.Format("{0}Field: {1}. ", Details, field.Name); } } } }