Compartir a través de


CA1041: Proporcionar un mensaje ObsoleteAttribute

Nombre de tipo

ProvideObsoleteAttributeMessage

Identificador de comprobación

CA1041

Categoría

Microsoft.Design

Cambio problemático

Poco problemático

Motivo

Un tipo o miembro se marca mediante un atributo System.ObsoleteAttribute para la que no se ha especificado su propiedad ObsoleteAttribute.Message.

Descripción de la regla

ObsoleteAttribute se utiliza para marcar los tipos y miembros obsoletos de la biblioteca.Los consumidores de la biblioteca deberían evitar el uso de cualquier tipo o miembro marcado como obsoleto.Esto es porque puede que no se admita y que se quite finalmente de las versiones posteriores de la biblioteca.Cuando se compila un tipo o miembro marcado mediante ObsoleteAttribute, se muestra la propiedad Message del atributo.Esto proporciona información al usuario sobre el miembro o tipo obsoleto.Esta información generalmente incluye cuánto tiempo se sigue admitiendo el tipo o miembro obsoleto por los diseñadores de la biblioteca y el sustituto preferido que se va a utilizar.

Cómo corregir infracciones

Para corregir una infracción de esta regla, agregue el parámetro message al constructor ObsoleteAttribute.

Cuándo suprimir advertencias

No suprima una advertencia de esta regla porque la propiedad Message proporciona información importante sobre el tipo o miembro desusado.

Ejemplo

En el siguiente ejemplo se muestra un miembro obsoleto que tiene un ObsoleteAttribute declarado correctamente.

Imports System

Namespace DesignLibrary

    Public Class ObsoleteAttributeOnMember

        <ObsoleteAttribute("This property is obsolete and will " & _
             "be removed in a future version. Use the FirstName " & _
             "and LastName properties instead.", False)> _
        ReadOnly Property Name As String
            Get
                Return "Name"
            End Get
        End Property

        ReadOnly Property FirstName As String
            Get
                Return "FirstName"
            End Get
        End Property

        ReadOnly Property LastName As String
            Get
                Return "LastName"
            End Get
        End Property

    End Class

End Namespace
using System;

namespace DesignLibrary
{
    public class ObsoleteAttributeOnMember
    {
        [ObsoleteAttribute("This property is obsolete and will " +
             "be removed in a future version. Use the FirstName " +
             "and LastName properties instead.", false)]
        public string Name
        {
            get
            {
                return "Name";
            }
        }

        public string FirstName
        {
            get
            {
                return "FirstName";
            }
        }

        public string LastName
        {
            get
            {
                return "LastName";
            }
        }

    }
}
using namespace System;

namespace DesignLibrary
{
    public ref class ObsoleteAttributeOnMember
    {
    public:
        [ObsoleteAttribute("This property is obsolete and will " 
            "be removed in a future version. Use the FirstName " 
            "and LastName properties instead.", false)]
        property String^ Name
        {
            String^ get()
            {
               return "Name";
            }
        }

        property String^ FirstName
        {
            String^ get()
            {
               return "FirstName";
            }
        }

        property String^ LastName
        {
            String^ get()
            {
               return "LastName";
            }
        }
    };
}

Vea también

Referencia

System.ObsoleteAttribute