ObsoleteAttribute Classe

Définition

Marque les éléments de programme qui ne sont plus utilisés. Cette classe ne peut pas être héritée.

public ref class ObsoleteAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)]
public sealed class ObsoleteAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)]
[System.Serializable]
public sealed class ObsoleteAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class ObsoleteAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)>]
type ObsoleteAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)>]
[<System.Serializable>]
type ObsoleteAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ObsoleteAttribute = class
    inherit Attribute
Public NotInheritable Class ObsoleteAttribute
Inherits Attribute
Héritage
ObsoleteAttribute
Attributs

Exemples

L’exemple suivant définit une classe qui contient une propriété et une méthode qui sont marquées avec l' ObsoleteAttribute attribut. L’accès à la valeur de la OldProperty propriété dans le code génère un avertissement du compilateur, mais l’appel de la CallOldMethod méthode génère une erreur du compilateur. L’exemple affiche également la sortie obtenue lorsque vous tentez de compiler le code source.

using System;
using System.Reflection;

public class Example
{
   // Mark OldProperty As Obsolete.
   [ObsoleteAttribute("This property is obsolete. Use NewProperty instead.", false)]
   public static string OldProperty
   { get { return "The old property value."; } }

   public static string NewProperty
   { get { return "The new property value."; } }

   // Mark CallOldMethod As Obsolete.
   [ObsoleteAttribute("This method is obsolete. Call CallNewMethod instead.", true)]
   public static string CallOldMethod()
   {
      return "You have called CallOldMethod.";
   }

   public static string CallNewMethod()
   {
      return "You have called CallNewMethod.";
   }

   public static void Main()
   {
      Console.WriteLine(OldProperty);
      Console.WriteLine();
      Console.WriteLine(CallOldMethod());
   }
}
// The attempt to compile this example produces output like the following output:
//    Example.cs(31,25): error CS0619: 'Example.CallOldMethod()' is obsolete:
//            'This method is obsolete. Call CallNewMethod instead.'
//    Example.cs(29,25): warning CS0618: 'Example.OldProperty' is obsolete:
//            'This property is obsolete. Use NewProperty instead.'
Imports System.Reflection

Public Module Example
   ' Mark OldProperty As Obsolete.
   <ObsoleteAttribute("This property is obsolete. Use NewProperty instead.", False)> 
   Public ReadOnly Property OldProperty As String
      Get
         Return "The old property value."
      End Get
   End Property
   
   Public ReadOnly Property NewProperty As String
      Get
         Return "The new property value."
      End Get
   End Property
   
   ' Mark OldMethod As Obsolete.
   <ObsoleteAttribute("This method is obsolete. Call CallNewMethod instead.", True)> 
   Public Function CallOldMethod() As String
      Return "You have called CallOldMethod."
   End Function
      
   Public Function CallNewMethod() As String   
      Return "You have called NewMethod."
   End Function   
   
   Public Sub Main()
      Console.WriteLine(OldProperty)
      Console.WriteLine()
      Console.WriteLine(CallOldMethod())
   End Sub  
End Module
'  The attempt to compile this example produces output like the following:
'    Example.vb(30) : warning BC40000: 'Public ReadOnly Property OldProperty As String' is obsolete: 
'                     'This property is obsolete. Use NewProperty instead.'.
'    
'          Console.WriteLine(OldProperty)
'                            ~~~~~~~~~~~
'    Example.vb(32) : error BC30668: 'Public Function CallOldMethod() As String' is obsolete: 
'                     'This method is obsolete. Call CallNewMethod instead.'.
'    
'          Console.WriteLine(CallOldMethod())
'                            ~~~~~~~~~~~~~

Remarques

ObsoleteAttribute s’applique à tous les éléments de programme, à l’exception des assemblys, des modules, des paramètres et des valeurs de retour. Le marquage d’un élément comme obsolète informe les utilisateurs que l’élément peut être supprimé dans une future version du produit.

La chaîne assignée à la Message propriété est émise par le compilateur lorsque la cible d’attribut est utilisée dans le code. Dans l’idéal, la chaîne doit fournir une solution de contournement ou une alternative de programmation.

Utilisez la IsError propriété pour indiquer au compilateur si l’utilisation de l' ObsoleteAttribute attribut doit provoquer l’émission d’une erreur (a la valeur IsError true ) ou d’un avertissement (a la valeur IsError false ).

Pour plus d’informations sur l’utilisation d’attributs, consultez attributs.

applications du windows Store Windows 8. x

lorsque vous créez une bibliothèque de métadonnées Windows (fichier. winmd), ObsoleteAttribute est exporté à la fois en tant qu' ObsoleteAttribute attribut et en Windows. Foundation. Metadata. DeprecatedAttribute si seul ObsoleteAttribute est présent dans le code source. Le ObsoleteAttribute est transformé en DeprecatedAttribute comme suit :

  • Si les message error arguments et sont tous les deux présents, message est assigné à l' DeprecatedAttribute message argument. Une valeur d’erreur de est true mappée à DeprecationType. Removeet une error valeur de est false mappée à DeprecationType. Deprecated.

  • Si l' message argument n’est pas fourni dans ObsoleteAttribute , sa valeur par défaut dans DeprecatedAttribute est «element_name est déconseillé », où element_name est le nom de l’élément de programme cible auquel l’attribut est appliqué.

  • Si l' error argument n’est pas présent dans ObsoleteAttribute , sa valeur par défaut dans DeprecatedAttribute est DeprecationType.Deprecate .

Important

Application directe du Windows. L’attribut Foundation. Metadata. DeprecatedAttribute en code managé n’est pas recommandé, car cette exportation se produit automatiquement.

Constructeurs

ObsoleteAttribute()

Initialise une nouvelle instance de la classe ObsoleteAttribute avec des propriétés par défaut.

ObsoleteAttribute(String)

Initialise une nouvelle instance de la classe ObsoleteAttribute avec un message de solution spécifié.

ObsoleteAttribute(String, Boolean)

Initialise une nouvelle instance de la classe ObsoleteAttribute avec un message de solution et une valeur Boolean indiquant si l'utilisation de l'élément obsolète est considérée comme une erreur.

Propriétés

DiagnosticId

Obtient ou définit l’ID que le compilateur utilisera pour signaler une utilisation de l’API.

IsError

Obtient une valeur indiquant si le compilateur va traiter l’utilisation de l’élément de programme obsolète comme erreur.

Message

Obtient le message de la solution de contournement.

TypeId

Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute.

(Hérité de Attribute)
UrlFormat

Obtient ou définit l’URL de la documentation correspondante. L’API accepte une chaîne de format au lieu d’une URL réelle et crée une URL générique qui comprend l’ID de diagnostic.

Méthodes

Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de Attribute)
GetHashCode()

Retourne le code de hachage de cette instance.

(Hérité de Attribute)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IsDefaultAttribute()

En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée.

(Hérité de Attribute)
Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié.

(Hérité de Attribute)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

(Hérité de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface.

(Hérité de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).

(Hérité de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.

(Hérité de Attribute)

S’applique à

Voir aussi