Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

ObsoleteAttribute.Message Property

Definition

Namespace:
System
Assemblies:
mscorlib.dll, System.Runtime.dll
Assemblies:
netstandard.dll, System.Runtime.dll
Assembly:
System.Runtime.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll
Source:
ObsoleteAttribute.cs
Source:
ObsoleteAttribute.cs
Source:
ObsoleteAttribute.cs
Source:
ObsoleteAttribute.cs
Source:
ObsoleteAttribute.cs

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Gets the workaround message.

public:
 property System::String ^ Message { System::String ^ get(); };
public string Message { get; }
public string? Message { get; }
member this.Message : string
Public ReadOnly Property Message As String

Property Value

The workaround text string.

Examples

The following example defines a class that contains two members marked as obsolete. The first, a property named OldProperty, produces a compiler warning if it is called. The second, a method named CallOldMethod, produces a compiler error. The example uses reflection to get information about the ObsoleteAttribute attributes applied to members of the type and displays the values of their Message and IsError properties.

using System;
using System.Reflection;

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

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

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

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

 public static void Main()
 {
 // Get all public members of this type.
 MemberInfo[] members = typeof(Example).GetMembers();
 // Count total obsolete members.
 int n = 0;

 // Try to get the ObsoleteAttribute for each public member.
 Console.WriteLine("Obsolete members in the Example class:\n");
 foreach (var member in members) {
 ObsoleteAttribute[] attribs = (ObsoleteAttribute[])
 member.GetCustomAttributes(typeof(ObsoleteAttribute),
 false);
 if (attribs.Length > 0) {
 ObsoleteAttribute attrib = attribs[0];
 Console.WriteLine("Member Name: {0}.{1}", member.DeclaringType.FullName, member.Name);
 Console.WriteLine(" Message: {0}", attrib.Message);
 Console.WriteLine(" Warning/Error: {0}", attrib.IsError ? "Error" : "Warning");
 n++;
 }
 }

 if (n == 0)
 Console.WriteLine("The Example type has no obsolete attributes.");
 }
}
// The example displays the following output:
// Obsolete members in the Example class:
//
// Member Name: Example.OldMethod
// Message: This method is obsolete. Call NewMethod instead.
// Warning/Error: Error
// Member Name: Example.OldProperty
// Message: This property is obsolete. Use NewProperty instead.
// Warning/Error: Warning
open System

type Example() =
 // Mark OldProperty As Obsolete.
 [<ObsoleteAttribute("This property is obsolete. Use NewProperty instead.", false)>]
 member _.OldProperty =
 "The old property value."

 member _.NewProperty =
 "The new property value."

 // Mark OldMethod As Obsolete.
 [<ObsoleteAttribute("This method is obsolete. Call NewMethod instead.", true)>]
 member _.OldMethod() =
 "You have called OldMethod."

 member _.NewMethod() =
 "You have called NewMethod."

// Get all public members of this type.
let members = typeof<Example>.GetMembers()
// Count total obsolete members.
let mutable n = 0

// Try to get the ObsoleteAttribute for each public member.
printfn "Obsolete members in the Example class:\n"
for m in members do
 let attribs = m.GetCustomAttributes(typeof<ObsoleteAttribute>, false) |> box :?> ObsoleteAttribute[]
 if attribs.Length > 0 then
 let attrib = attribs[0]
 printfn $"Member Name: {m.DeclaringType.FullName}.{m.Name}"
 printfn $" Message: {attrib.Message}"
 printfn $""" Warning/Error: {if attrib.IsError then "Error" else "Warning"}"""
 n <- n + 1

if n = 0 then
 printfn "The Example type has no obsolete attributes."
// The example displays the following output:
// Obsolete members in the Example class:
//
// Member Name: Example+Example.OldMethod
// Message: This method is obsolete. Call NewMethod instead.
// Warning/Error: Error
// Member Name: Example+Example.OldProperty
// Message: This property is obsolete. Use NewProperty instead.
// Warning/Error: Warning
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 NewMethod instead.", True)> 
 Public Function OldMethod() As String
 Return "You have called OldMethod."
 End Function
 
 Public Function NewMethod() As String 
 Return "You have called NewMethod."
 End Function 
 
 Public Sub Main()
 ' Get all public members of this type.
 Dim members() As MemberInfo = GetType(Example).GetMembers()
 ' Count total obsolete members.
 Dim n As Integer = 0
 
 ' Try to get the ObsoleteAttribute for each public member.
 Console.WriteLine("Obsolete members in the Example class:")
 Console.WriteLine()
 For Each member In members
 Dim attribs() As ObsoleteAttribute = CType(member.GetCustomAttributes(GetType(ObsoleteAttribute), 
 False), ObsoleteAttribute())
 If attribs.Length > 0 Then
 Dim attrib As ObsoleteAttribute = attribs(0)
 Console.WriteLine("Member Name: {0}.{1}", member.DeclaringType.FullName, member.Name)
 Console.WriteLine(" Message: {0}", attrib.Message) 
 Console.WriteLine(" Warning/Error: {0}", if(attrib.IsError, "Error", "Warning")) 
 n += 1
 End If
 Next
 
 If n = 0 Then
 Console.WriteLine("The Example type has no obsolete attributes.")
 End If 
 End Sub 
End Module
' The example displays the following output:
' Obsolete members in the Example class:
' 
' Member Name: Example.OldMethod
' Message: This method is obsolete. Call NewMethod instead.
' Warning/Error: Error
' Member Name: Example.OldProperty
' Message: This property is obsolete. Use NewProperty instead.
' Warning/Error: Warning

Applies to


Feedback

Was this page helpful?