[CodeSnipeet] Usar el atributo Obsolete (.NET: ObsoleteAttribute Class)

Entre cada versión de un producto, siempre puede ocurrir la mejora de alguna clase o método creando una versión con un nuevo nombre, pero también existe el tema de afectar lo menos posible a aplicaciones que usen la versión antigua. Es como usar la clase ConfigurationSettings.AppSettings en .Net 2.0, cuando podemos usar ConfigurationManager.AppSettings, siempre encontramos esos códigos que dices después lo cambio que por temas de tiempo todavía no se han podido actualizar.

El uso del atributo Obsolete, además de ser útil cuando distribuimos librerías a terceros, también podemos usarla en nuestros equipos internos. Siempre debemos tratar de que el código sea mantenible independiente del desarrollador actual, ¿cómo le decimos al siguiente desarrollador?: “Tío no uses este método, usa este nuevo método, no borre al anterior porque tengo miedo que no funcione la aplicación, si quieres tu lo puedes borrar”. Usando el atributo Obsolete.

¿Cómo podemos usar el atributo Obsolete?

   1: [Obsolete]
   2: [Obsolete("BuildPostList was disabled in BEv2.5")]
   3: [Obsolete("BuildPostList was disabled in BEv2.5", true)]
   4: private static void BuildPostList()
   5: {
   6:     var number = Math.Min(BlogSettings.Instance.NumberOfRecentPosts, Post.Posts.Count);
   7:  
   8:     Posts.Clear();
   9:     foreach (var post in Post.Posts.Where(post => post.IsVisibleToPublic).Take(number))
  10:     {
  11:         Posts.Add(post);
  12:     }    
  13: }

Podemos usarlo en tres versiones, la primera sólo indica que el método esta obsoleto, la segunda además de mostrar un mensaje de obsoleto muestra un mensaje personalizado, y la tercera además del mensaje muestra un error en tiempo de compilación:

Ver: Entrada original.

Saludos,

Published 7/12/2011 19:36 por Sergio Tarrillo
Archivado en: ,,
Comparte este post:
http://geeks.ms/blogs/sergiotarrillo/archive/2011/12/07/codesnipeet-usar-el-atributo-obsolete-net-obsoleteattribute-class.aspx