Я согласен со всеми здесь. Я думаю, что если бы мне предоставили код для поддержки и увидел класс с интерфейсом, который не имел никаких свойств или методов, я был бы очень смущен.
В приложении asp.net mvc, с которым я работал недавно, у меня была основная операция (код отслеживания), которую я хотел сделать на почти каждый запрос (но не на say и ajax-запрос или на страницу администратора). Я добавил операцию на базовый контроллер и выполнил ее в методе ExecuteCore. Для нескольких ситуаций, которые я не хотел запускать, я установил флаг в производном контроллере, чтобы он не запускал его.
Это не так чисто и элегантно, как атрибут, но его намного проще реализовать.
Конечно, это не поможет, если вы хотите создать общие операции для всех производных классов.Но в таком случае должны быть некоторые общие вещи об объектах (скажем, общее свойство), что означало бы, что интерфейс не будет пустым.
Я отмечаю как дубликат http://stackoverflow.com/questions/1023068/what-is-the-purpose-of-of- a-marker-интерфейс, потому что он эффективно отвечает на этот вопрос. – spender
никогда не слышал о терминах «интерфейс маркера». Поэтому я не обнаружил, что при поиске. – Erix
@SP - Я бы принял предложение Скотта к сердцу в этом связанном ответе, имо, это корень какого-то мерзкого зла. – Marc