ObsoleteAttribute Класс

Определение

Отмечает элементы программы, которые больше не используются. Этот класс не наследуется.

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
Наследование
ObsoleteAttribute
Атрибуты

Примеры

В следующем примере определяется класс, содержащий свойство, и метод, помеченный ObsoleteAttribute атрибутом. При доступе к значению OldProperty свойства в коде создается предупреждение компилятора, но вызов CallOldMethod метода приводит к ошибке компилятора. В примере также показаны выходные данные, полученные при попытке компиляции исходного кода.

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())
'                            ~~~~~~~~~~~~~

Комментарии

ObsoleteAttribute применимо ко всем элементам программы, за исключением сборок, модулей, параметров и возвращаемых значений. Пометка элемента как устаревшего информирует пользователей о том, что элемент может быть удален в будущей версии продукта.

Строка, назначенная Message свойству, создается компилятором при использовании целевого объекта атрибута в коде. В идеале строка должна предоставлять некоторые обходные пути или программные альтернативы.

Используйте IsError свойство, чтобы указать компилятору, следует ли использовать ObsoleteAttribute атрибут, чтобы выдать ошибку ( IsError значение true ) или предупреждение ( IsError имеет значение false ).

Дополнительные сведения об использовании атрибутов см. в разделе атрибуты.

приложения магазина Windows 8. x

при создании Windows библиотеки метаданных (winmd-файл) ObsoleteAttribute экспортируется как ObsoleteAttribute атрибут и Windows. Foundation. Metadata. DeprecatedAttribute , если ObsoleteAttribute в исходном коде имеется только атрибут. ObsoleteAttributeПреобразуется в, DeprecatedAttribute как показано ниже.

  • Если message аргументы и error существуют, message присваивается DeprecatedAttribute message аргументу. Значение ошибки true сопоставляется с DeprecationType. Remove, а error значение false сопоставляется с DeprecationType. рекомендуется использовать.

  • Если message аргумент не указан в ObsoleteAttribute , его значение по умолчанию в DeprecatedAttribute равно «element_name является устаревшим», где element_name — имя целевого элемента программы, к которому применяется атрибут.

  • Если error аргумент отсутствует в ObsoleteAttribute , его значение по умолчанию в DeprecatedAttribute равно DeprecationType.Deprecate .

Важно!

Непосредственное применение Windows. Не рекомендуется использовать атрибут Foundation. Metadata. DeprecatedAttribute для управляемого кода, так как этот экспорт выполняется автоматически.

Конструкторы

ObsoleteAttribute()

Инициализирует новый экземпляр класса ObsoleteAttribute стандартными свойствами.

ObsoleteAttribute(String)

Инициализирует новый экземпляр класса ObsoleteAttribute указанным сообщением об обходном пути.

ObsoleteAttribute(String, Boolean)

Инициализирует новый экземпляр класса ObsoleteAttribute сообщением об обходном пути и логическим значением, позволяющим определить, следует ли считать использование устаревшего элемента ошибкой.

Свойства

DiagnosticId

Возвращает или задает идентификатор, который будет использоваться компилятором при передаче данных об использовании API.

IsError

Возвращает значение, позволяющее определить, будет ли компилятор считать использование устаревшего элемента программы ошибкой.

Message

Возвращает сообщение обходного решения.

TypeId

В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute.

(Унаследовано от Attribute)
UrlFormat

Возвращает или задает URL-адрес для соответствующей документации. API принимает формат строки вместо фактического URL-адреса, создавая универсальный URL-адрес, содержащий диагностический идентификатор.

Методы

Equals(Object)

Возвращает значение, показывающее, равен ли экземпляр указанному объекту.

(Унаследовано от Attribute)
GetHashCode()

Возвращает хэш-код данного экземпляра.

(Унаследовано от Attribute)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IsDefaultAttribute()

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса.

(Унаследовано от Attribute)
Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.

(Унаследовано от Attribute)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

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

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса.

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.

(Унаследовано от Attribute)

Применяется к

См. также раздел