Is .Net attribute feature used at compile-time or run-time or both?
.net, attributes, c#
Solution
Attributes are output as metadata to the assembly at compile time. This meta data is then used at runtime via reflection - for example using `GetCustomAttributes()`.
Some attributes are used by the compiler at compile time, too. For example the compiler looks at the `AttributeUsageAttribute` to determine if an attribute can be used for a specific object.
Problem
In .Net, is the attribute feature used at compile-time or run-time or both? Can you give me some examples?