What are attributes in C#

Attributes in C# are a powerful way to add metadata to your code. They are used to add declarative information to program entities like classes, methods, properties, and more. This metadata can then be retrieved at runtime using reflection, allowing for dynamic behavior based on the provided attributes.

For example, you can use attributes to control serialization, enforce validation rules, or define routing in web applications. They are specified in square brackets preceding the declaration of the item they are applied to.

[Serializable] public class ExampleClass { [Obsolete("This method is obsolete. Use NewMethod instead.")] public void OldMethod() { // method implementation } public void NewMethod() { // new method implementation } }

Attributes C# metadata reflection serialization validation routing