rspec/rules/S3993/rule.adoc
2021-01-27 13:42:22 +01:00

60 lines
1001 B
Plaintext

When defining custom attributes, ``++System.AttributeUsageAttribute++`` must be used to indicate where the attribute can be applied. This will determine its valid locations in the code.
== Noncompliant Code Example
----
using System;
namespace MyLibrary
{
public sealed class MyAttribute :Attribute // Noncompliant
{
string text;
public MyAttribute(string myText)
{
text = myText;
}
public string Text
{
get
{
return text;
}
}
}
}
----
== Compliant Solution
----
using System;
namespace MyLibrary
{
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Enum | AttributeTargets.Interface | AttributeTargets.Delegate)]
public sealed class MyAttribute :Attribute
{
string text;
public MyAttribute(string myText)
{
text = myText;
}
public string Text
{
get
{
return text;
}
}
}
}
----