Это не очень важный вопрос, мне только любопытно, почему это не разрешено. Сообщение об ошибке не помогает при объяснении, потому что очевидно, что "Att" наследуется от Attribute.
public class Generic<Att> where Att : System.Attribute
{
[Att] //Error: 'Att' is not an attribute class
public float number;
}