このページは日本語には対応しておりません。随時翻訳に取り組んでいます。
翻訳に関してご質問やご意見ございましたら、お気軽にご連絡ください

Metadata

ID: csharp-best-practices/attributeusage

Language: C#

Severity: Warning

Category: Best Practices

Description

This rule is important because it helps control the usage of custom attributes in the C# code. Attributes in C# provide a powerful method of associating metadata, or declarative information, with code. However, without specifying how these attributes should be used, it can lead to misuse or confusion among developers.

The AttributeUsage attribute dictates where the custom attribute can be applied, helping to prevent improper usage. It can be set to apply to classes, structures, enums, delegates, interfaces, methods, fields, parameters, properties, and events. The AllowMultiple property determines whether the attribute can be applied multiple times to the same entity.

How to remediate

To fix the issues related to this rule, add the AttributeUsage attribute when creating your custom attributes. Specify where your attribute should be used by setting appropriate AttributeTargets and control the number of times it can be applied to the same entity using the AllowMultiple property. For example, [AttributeUsageAttribute(AttributeTargets.All, AllowMultiple = false)] specifies that your custom attribute can be applied to any entity but not multiple times to the same entity.

Non-Compliant Code Examples

// should control how the attribute is used
public class MyNewAttribute : Attribute
{
}

Compliant Code Examples

[System.AttributeUsage(AttributeTargets.All, AllowMultiple = false)]
public class MyNewAttribute : Attribute
{
}
[AttributeUsageAttribute(AttributeTargets.All, AllowMultiple = false)]
public class MyNewAttribute : Attribute
{
}
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Security

PREVIEWING: guillaume.barrier/ERRORT-5095-general-doc-update