Skip to content

Gendarme.Rules.Design.MissingAttributeUsageOnCustomAttributeRule(2.10)

Sebastien Pouliot edited this page Feb 9, 2011 · 3 revisions

MissingAttributeUsageOnCustomAttributeRule

Assembly: Gendarme.Rules.Design
Version: 2.10

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 {
}
Clone this wiki locally