Lo obsoleto en .NET Framework

.NET Framework cambia con el tiempo. Cada nueva versión agrega nuevos tipos y miembros de tipos que proporcionan una nueva funcionalidad. Los tipos existentes y sus miembros también cambian con el tiempo. Por ejemplo, algunos tipos pierden importancia cuando la tecnología que admiten es reemplazada por una nueva y algunos métodos son sustituidos por métodos más nuevos que resultan más cómodos o están más completos.

.NET Framework y Common Language Runtime se esfuerzan por ser compatibles con versiones anteriores (permitir que aplicaciones que se desarrollaron con una versión de .NET Framework puedan ejecutarse en la versión siguiente de .NET Framework). Esto hace más difícil quitar simplemente un tipo o un miembro de tipo. En su lugar, .NET Framework indica que no se debería seguir utilizando un tipo o un miembro de tipo marcándolo como obsoleto o desusado. El desuso de un tipo o un miembro implica marcarlo para que los desarrolladores sean conscientes de que va a desaparecer y tengan tiempo para reaccionar antes de su eliminación. Sin embargo, el código existente que utiliza el tipo o el miembro continúa ejecutándose en la nueva versión de .NET Framework.

NotaNota

Los términos obsoleto y desusado tienen el mismo significado cuando se aplican a los tipos y miembros de .NET Framework.

El atributo ObsoleteAttribute

.NET Framework indica que un tipo o un miembro de tipo está obsoleto marcándolo con el atributo ObsoleteAttribute. La aplicación del atributo a un tipo o miembro indica que ese tipo o miembro se quitará de alguna versión futura de .NET Framework sin interrumpir el código compilado que utiliza este miembro.

Además de indicar que un tipo o miembro de tipo está obsoleto, ObsoleteAttribute define cómo administra el compilador el código fuente que incluye este tipo o miembro. El compilador puede compilar el código pero emitir un mensaje de advertencia o puede tratar el uso del tipo o miembro como un error. En el primer caso, el código puede compilarse correctamente, pero un mensaje de advertencia indica que el tipo o miembro está obsoleto. En el segundo caso, se produce un error de compilación.

Incluso si la compilación genera un error en lugar de un mensaje de advertencia, ObsoleteAttribute no afecta al comportamiento en tiempo de ejecución. Es decir, las aplicaciones que utilizan el tipo o miembro y que se han compilado correctamente siempre se ejecutarán correctamente. Solo se produce un error en el intento de volver a compilar una aplicación que utiliza el tipo o miembro.

Cómo administrar tipos y miembros obsoletos

Al actualizar y volver a compilar el código existente, el uso de un tipo o miembro obsoleto que genera una advertencia del compilador en su aplicación es absolutamente aceptable. Sin embargo, debería revisar el mensaje de advertencia del compilador para determinar si tiene que cambiar el código de aplicación. Si el mensaje no indica ninguna alternativa adecuada, debe realizar una de las siguientes operaciones:

  • Cambie su código quitando el uso del tipo o miembro, si es posible.

    O bien

  • Revise la documentación para que esta área de tecnología determine cómo responder al desuso.

Puede decidir no volver a compilar un código existente con una versión posterior de .NET Framework. En su lugar, puede especificar la versión de .NET Framework con la que se ejecuta el código compilado existente. Por ejemplo, suponga que tiene una aplicación denominada app1.exe que se compiló con .NET Framework 3.5, pero desea que la aplicación se ejecute con .NET Framework 4. Para ello, siga estos pasos:

  1. Cree un archivo de configuración para el ejecutable principal y denomínelo appName.exe.config, donde appName es el nombre del ejecutable de la aplicación. Para la aplicación denominada app1.exe en nuestro ejemplo, va a crear un archivo de configuración denominado app1.exe.config.

  2. Agregue lo siguiente al archivo de configuración.

    <configuration>
       <startup> 
          <supportedRuntime version="v4.0" />
       </startup>
    </configuration>
    

En la siguiente tabla se muestra una lista de los valores de cadena que puede asignar al atributo version para una versión concreta de .NET Framework.

Versión de .NET Framework

Cadena de version

4

v4.0

3.5

v2.0.50727

2.0

v2.0.50727

1.1

v1.1.4322

1.0

v1.0.3705

Listas obsoletas para .NET Framework 4

Tipos obsoletos

Miembros obsoletos

Listas de obsoletos para versiones anteriores

.NET Framework 3.5 Obsolete List

.NET Framework 2.0 Obsolete List

Vea también

Referencia

<supportedRuntime> (Elemento)