[SerializableAttribute] appears on the mind. The compiler handles this differently for other attributes, I believe that it translates to a specific instruction in IL ..
EDIT . As an example, consider IL for ArgumentException, the class definition is as follows:
.class public auto ansi serializable beforefieldinit ArgumentException
Note the * 'serializable' modifier. Usually with an attribute you expect to see something like the following, but it is not:
.custom instance void System.SerializableAttribute::.ctor() = (
source share