My own set of SuppressMessage-lines

StyleCop issues inheritedoc-comment Using <inheritdoc />-comment is not recognized by StyleCop. So this needs a suppression: // <inheritdoc /> [ SuppressMess...

StyleCop issues

inheritedoc-comment

Using <inheritdoc />-comment is not recognized by StyleCop. So this needs a suppression:

// <inheritdoc /> [SuppressMessage( “Microsoft.StyleCop.CSharp.DocumentationRules”, “SA1604:ElementDocumentationMustHaveSummary”, Justification = “InheritDoc”)]

FxCop issues

Too few namespaces

[module: SuppressMessage( “Microsoft.Design”, “CA1020:AvoidNamespacesWithFewTypes”, Scope = “namespace”, Target = “EsriDE.Core.Service.Logging”, Justification = “We want to have this namespace, but do not have enough classes to go in it right now to satisfy the rule.”)]

ReSharper only supports non static test methods

[SuppressMessage( “Microsoft.Performance”, “CA1822:MarkMembersAsStatic”, Justification = “ReSharper could not handle static test methods.”)]

No strong name

[assembly: SuppressMessage( “Microsoft.Design”, “CA2210:AssembliesShouldHaveValidStrongNames”, Justification = “Strong name is not needed for this.”)]

Catching general exception

[SuppressMessage( “Microsoft.Design”, “CA1031:DoNotCatchGeneralExceptionTypes”, Justification = “We do not know which exceptions could be thrown.”)]

Justification for samples and fixtures

[SuppressMessage( “Microsoft.XYZ”, “CAxyz:XYZ”, Justification = “For fixtures this is OK.”)]

Setter but no Getter (for example in IoC or NHibernate-context)

[SuppressMessage( “Microsoft.Usage”, “CA2227:CollectionPropertiesShouldBeReadOnly”, Justification = “Setter is needed for nhibernate, otherwise a NHibernate.PropertyNotFoundException will be thrown.”)]

[SuppressMessage( “Microsoft.Xyz”, “CAxyz:XYZ”, Justification = “We only need a setter for setter injection.”)]

Instantiation with IoC

[SuppressMessage( “Microsoft.Performance”, “CA1811:AvoidUncalledPrivateCode”, Justification = “We need this for unit tests.”)]

[SuppressMessage( “Microsoft.Performance”, “CA1812:AvoidUninstantiatedInternalClasses”, Justification = “Class would be instantiated by IoC framework.”)]

Incorrect naming

[SuppressMessage( “Microsoft.StyleCop.CSharp.NamingRules”, “SA1310:FieldNamesMustNotContainUnderscore”, Justification = “Windows message constants are commonly named as WM_xxxxx”)]

Incorrect casing

[module: SuppressMessage( “Microsoft.Naming”, “CA1709:IdentifiersShouldBeCasedCorrectly”, Scope = “type”, Target = “EsriDE.Data.Access.IDbFactory”, MessageId = “<WrongCasedWord>”)]

[module: SuppressMessage( “Microsoft.Naming”, “CA1709:IdentifiersShouldBeCasedCorrectly”, Scope = “type”, MessageId = “<WrongCasedWord>”)]

Parametername should match base declaration

[SuppressMessage( “Microsoft.Naming”, “CA1725:ParameterNamesShouldMatchBaseDeclaration”, Justification = “Rule CA1725 has a bug when inspecting parameters from methods from interfaces. So suppress it with class.”)]

Throwing ApplicationException

[SuppressMessage( “Microsoft.Usage”, “CA2201:DoNotRaiseReservedExceptionTypes”, Justification = “ApplicationException is OK.”)]

FxCop is too strict

[SuppressMessage(" Microsoft.XYZ", “CAxyz:XYZ”, Justification = “We decide that this is OK.”)]

[module: SuppressMessage( “Microsoft.XYZ”, “CAxyz:XYZ”, Scope = “resource”, Target = “EsriDE.PipelineManagement.Core.Properties.Messages.resources”, MessageId = “Toolbar”, Justification = “We decide that this is OK.”)]

[SuppressMessage( “Microsoft.XYZ”, “CAxyz:XYZ”, Justification = “This is by design.”)]

Code from untaught colleagues

[SuppressMessage( “Microsoft.XYZ”, “CAxyz:XYZ”, Justification = “Currently, we do not have enough knowledge or experience to fix this.”)]

[SuppressMessage( “Microsoft.XYZ”, “CAxyz:XYZ”, Justification = “Cowboy-coding colleagues.”)]