Estoy de acuerdo con todo el mundo aquí. Creo que si me dieran código para mantener y viera una clase con una interfaz que no tuviera propiedades o métodos, estaría muy confundido.
En una aplicación asp.net mvc en la que trabajé recientemente tuve una operación central (código de seguimiento) que quería hacer en casi cada solicitud (pero no en say y ajax o en una página de administración). Agregué la operación a un controlador base y lo ejecuté en el método ExecuteCore. Para las pocas situaciones en las que no quería que se ejecutara, establecí un indicador en el controlador derivado para no ejecutarlo.
Esto no es tan limpio y elegante como un atributo, pero es mucho más fácil de implementar.
Por supuesto, esto no ayudará si desea crear operaciones genéricas para todas las clases derivadas.Pero en tal caso tendría que haber algunas cosas en común sobre los objetos (digamos una propiedad común) lo que significaría que la interfaz no estaría vacía.
Estoy marcando como duplicado de http://stackoverflow.com/questions/1023068/what-is-the-purpose-of- a-marker-interface porque efectivamente responde a esta pregunta. – spender
nunca antes había oído hablar del término 'interfaz de marcador'. Entonces no lo encontré mientras buscaba. – Erix
@SP - Me gustaría tomar en serio la sugerencia de Scott en esa respuesta vinculada, imo, es la raíz de un mal vil. – Marc