Это зависит от сценария. WCF, например, украшает интерфейсы для контрактов операций.
Однако, если вы собираетесь говорить о объектах (а не о самом интерфейсе), обратите внимание, что вызов кода может быть болезненным для получения метаданных интерфейса, особенно если класс использует явные реализация интерфейса.
Было бы более обычно украшать класс, но это не совсем тот же вопрос; -p
Если атрибут действительно относится к интерфейсу (не к экземплярам), тогда хорошо - украсить интерфейс и поговорить о typeof(IFoo)
и т. Д. Но если вы ожидаете, что код сможет установить введите значения для атрибутов, они должны быть на уровне класса.
Какой сценарий?