¿Cómo marcar una clase como obsoleta? [duplicar]


Posible Duplicado:
¿Cómo puedo marcar un método como Obsoleto / Obsoleto? - C #

¿Cómo se marca una clase como obsoleta? No quiero usar una clase más en mi proyecto, pero no desea eliminar antes de un período de 2 semanas.

Author: Community, 2008-11-24

4 answers

Necesitas usar el atributo [Obsolete].

Este es un ejemplo:

[Obsolete("Not used any more", true)]
public class MyDeprecatedClass
{
    //...
}

No tiene parámetros de uso, son opcionales (método sobrecargado). El primer parámetro es por la razón y el último es marcar un error en tiempo de compilación en lugar de una advertencia.

 356
Author: Patrick Desjardins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-10-05 12:57:46

Según la respuesta de Doak, pero el segundo parámetro del atributo debe establecerse en false si desea que el código se compile:

[Obsolete("Not used any more", false)]
public class MyDeprecatedClass
{
        //...
}

Esto solo lanzará advertencias.

 37
Author: Junto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-10-05 12:58:44

La razón para no borrar una clase y desaprobar en su lugar es adherirse a algunas "políticas de cortesía" cuando su código es una API establecida y luego es consumido por terceros.

Si desactiva en lugar de borrar, le da a los consumidores una política de ciclo de vida (por ejemplo, mantenimiento y existencia de las clases hasta la versión X. X) para permitirles planificar una migración adecuada a su nueva API.

 18
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-28 11:14:03

Si está utilizando control de versiones, le recomendaría simplemente eliminar la clase. No hay razón para tener código no utilizado alrededor.

El control de versiones será un útil deshacer si decide más tarde que desea la clase.

 -6
Author: jjnguy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-11-24 15:43:19