This is an attribute used to decorate things with available metadata. You can use reflection to get this data and do something with it. Many parts of the framework already do this, as in the example in the MSDN link for the attributes denoting the Serializable class - you can perform custom serialization based on metadata, but you do not always need it because "automatic serialization" is already implemented based on this concept.
Square brackets are the syntax used to apply them, as shown in your example.
source share