Skip to content

Gendarme.Rules.Design.MissingAttributeUsageOnCustomAttributeRule(git)

Sebastien Pouliot edited this page Mar 2, 2011 · 1 revision

MissingAttributeUsageOnCustomAttributeRule

Assembly: Gendarme.Rules.Design
Version: git

Description

This rule verifies that every custom attribute (i.e. types that inherit from System.Attribute ) is decorated with an AttributeUsage attribute to specify which kind of code instances of that custom attribute can be applied to.

Examples

Bad example:

// this applies to everything - but the meaning is not clear
public sealed class SomeAttribute : Attribute {
}

Good examples:

// this clearly applies to everything
[AttributeUsage (AttributeTargets.All)]
public sealed class AttributeApplyingToAnything : Attribute {
}
// while this applies only to fields
[AttributeUsage (AttributeTargets.Field)]
public sealed class AttributeApplyingToFields : Attribute {
}

Source code

You can browse the latest source code of this rule on github.com

Clone this wiki locally