System.ObsoleteAttribute Class

Assembly: Mscorlib.dll
Namespace: System
Summary
Marks the program elements that are no longer in use. This class cannot be inherited.
C# Syntax:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Interface | AttributeTargets.Delegate)]
[Serializable]
public sealed class ObsoleteAttribute : Attribute
Remarks
ObsoleteAttribute is applicable to all program elements except assemblies, modules, parameters or return values. Marking an element as obsolete informs the users that the element will be removed in future versions of the product.

For more information about using attributes, see the conceptual topic at MSDN: extendingmetadatausingattributes.

See also:
System Namespace | Attribute | MSDN: extendingmetadatausingattributes

System.ObsoleteAttribute Member List:

Public Constructors
ctor #1 Overloaded:
.ctor()

Default constructor. This constructor is called by derived class constructors to initialize state in this type.
Initializes a new instance of the ObsoleteAttribute class with default properties.
ctor #2 Overloaded:
.ctor(string message)

Initializes a new instance of the ObsoleteAttribute class with a specified workaround message.
ctor #3 Overloaded:
.ctor(string message, bool error)

Initializes a new instance of the ObsoleteAttribute class with a workaround message and a Boolean value indicating whether the obsolete element usage is considered an error.
Public Properties
IsError Read-only

Gets a Boolean value indicating whether the compiler will treat usage of the obsolete program element as an error.
Message Read-only

Gets the workaround message, including a description of the alternative program elements.
TypeId
(inherited from System.Attribute)
Read-only

See base class member description: System.Attribute.TypeId


When implemented in a derived class, gets a unique identifier for this Attribute.
Public Methods
Equals
(inherited from System.Object)
See base class member description: System.Object.Equals

Derived from System.Object, the primary base class for all objects.
GetHashCode
(inherited from System.Attribute)
See base class member description: System.Attribute.GetHashCode


Returns the hash code for this instance.
GetType
(inherited from System.Object)
See base class member description: System.Object.GetType

Derived from System.Object, the primary base class for all objects.
IsDefaultAttribute
(inherited from System.Attribute)
See base class member description: System.Attribute.IsDefaultAttribute


When overridden in a derived class, returns an indication whether the value of this instance is the default value for the derived class.
Match
(inherited from System.Attribute)
See base class member description: System.Attribute.Match


When overridden in a derived class, returns a value indicating whether this instance equals a specified object.
ToString
(inherited from System.Object)
See base class member description: System.Object.ToString

Derived from System.Object, the primary base class for all objects.
Protected Methods
Finalize
(inherited from System.Object)
See base class member description: System.Object.Finalize

Derived from System.Object, the primary base class for all objects.
MemberwiseClone
(inherited from System.Object)
See base class member description: System.Object.MemberwiseClone

Derived from System.Object, the primary base class for all objects.

Hierarchy:


System.ObsoleteAttribute Member Details

Overloaded ctor #1
Summary
Initializes a new instance of the ObsoleteAttribute class with default properties.

Default constructor. This constructor is called by derived class constructors to initialize state in this type.
C# Syntax:
public ObsoleteAttribute();
Remarks
The following table shows the initial property values for an instance of ObsoleteAttribute.

Property Value
ObsoleteAttribute.IsError false .
ObsoleteAttribute.Message The empty string ("").
Example
using System;

public class ObsoleteAttrib_Cons1
{
   // Mark the method as 'Obsolete'.
   [ObsoleteAttribute()]
   public string OldFunction()
   {
      return "This is the String from old function.";
   }
   
// Create the another function which is replacement to the 'OldFunction'.
   public string NewFunction()
   {
      return "This is the String from new function.";
   }
}

public class TestObsolete1
{
   static void Main(string[] args)
   {         
      try
      {
         ObsoleteAttrib_Cons1 myObsolete = new ObsoleteAttrib_Cons1();
         Console.WriteLine(myObsolete.OldFunction());
      }
      catch(Exception e)
      {
         Console.WriteLine("The Exception is :"+e.Message);
      }
   }
}

    

Return to top


Overloaded ctor #2
Summary
Initializes a new instance of the ObsoleteAttribute class with a specified workaround message.
C# Syntax:
public ObsoleteAttribute(
   string message
);
Parameters:

message

The text string that describes alternative workarounds.

Remarks
The following table shows the initial property values for an instance of ObsoleteAttribute.

Property Value
ObsoleteAttribute.IsError false .
ObsoleteAttribute.Message The workaround message.
Example
using System;
public class ObsoleteAttrib_Cons1
{
   // Mark the method as 'Obsolete' with message as parameter.
   [ObsoleteAttribute("This function will be removed from future Versions.Use another function 'NewFunction'")]
   public string OldFunction()
   {
      return "This is the String from old function.";
   }
   // Create the another function which is replacement to the 'OldFunction'.
   public string NewFunction()
   {
      return "This is the String from new function.";
   }
}

public class TestObsolete2
{
   static void Main(string[] args)
   {               
      try
      {
         ObsoleteAttrib_Cons1 myObsolete = new ObsoleteAttrib_Cons1();
         Console.WriteLine(myObsolete.OldFunction());
         Console.WriteLine(myObsolete.NewFunction());
      }
      catch(Exception e)
      {
         Console.WriteLine("The Exception is :"+e.Message);
      }
   }
}

    

Return to top


Overloaded ctor #3
Summary
Initializes a new instance of the ObsoleteAttribute class with a workaround message and a Boolean value indicating whether the obsolete element usage is considered an error.
C# Syntax:
public ObsoleteAttribute(
   string message,
   bool error
);
Parameters:

message

The text string that describes alternative workarounds.

error

The Boolean value that indicates whether the obsolete element usage is considered an error.

Remarks
The following table shows the initial property values for an instance of ObsoleteAttribute.

Property Value
ObsoleteAttribute.IsError The value.
ObsoleteAttribute.Message The workaround message.
Example
using System;

public class ObsoleteAttrib_Cons1
{

   // Mark the method as 'Obsolete' with message and IsError as parameters.
   [ObsoleteAttribute("This function will be removed from future Versions.Use another function 'NewFunction'",false)]
   public string OldFunction()
   {
      return "This is the String from old function.";
   }
   // Create the another function which is replacement to the 'OldFunction'.
   public string NewFunction()
   {
      return "This is the String from new function.";
   }

}
public class TestObsolete3
{
   static void Main(string[] args)
   {            
      try
      {
         ObsoleteAttrib_Cons1 myObsolete = new ObsoleteAttrib_Cons1();
         Console.WriteLine(myObsolete.OldFunction());
         Console.WriteLine(myObsolete.NewFunction());
      }
      catch(Exception e)
      {
         Console.WriteLine("The Exception is :"+e.Message);
      }
   }
}

    

Return to top


Property: IsError (read-only)
Summary
Gets a Boolean value indicating whether the compiler will treat usage of the obsolete program element as an error.
C# Syntax:
public bool IsError {get;}
Example
   using System;
   using System.ComponentModel;

   public class ObsoleteAttribute_Message
   {
   // Mark the property as 'Obsolete' with message and IsError as parameters.
   [ObsoleteAttribute("This property will be removed from future Versions.Use another property 'MyNewProperty'",false)]
      public string MyOldProperty 
      {
         get 
         {
            return "This is the value of the property";
         }
      }
      // Create another property.
      public string MyNewProperty 
      {
         get 
         {
            return "This is the value of the new property";
         }
      }


   // Get the Properties of the 'ObsoleteAttribute'.  
   public void GetPropertyAttributes()
   {
      // Retrieve all the attributes.
      AttributeCollection attributes = TypeDescriptor.GetProperties(this)["MyOldProperty"].Attributes;
          
      ObsoleteAttribute myAttribute = (ObsoleteAttribute)attributes[typeof(ObsoleteAttribute)];
      Console.WriteLine("The Message of the ObsoleteAttribute is :\n"+myAttribute.Message);
      Console.WriteLine("Usage of Obsolete as error is :"+myAttribute.IsError);
   }
   }

   public class TestObsolete4
   {
      static void Main(string[] args)
      {                 
         try
         {
            ObsoleteAttribute_Message myObsolete = new ObsoleteAttribute_Message();
            Console.WriteLine("The Message of Old Property is :"+myObsolete.MyOldProperty);
            Console.WriteLine("The Message of New Property is :"+myObsolete.MyNewProperty);
            myObsolete.GetPropertyAttributes();
         }
         catch(Exception e)
         {
            Console.WriteLine("The Exception is :"+e.Message);
         }         			
      } 

   }

    

Return to top


Property: Message (read-only)
Summary
Gets the workaround message, including a description of the alternative program elements.
C# Syntax:
public string Message {get;}
Example
   using System;
   using System.ComponentModel;

   public class ObsoleteAttribute_Message
   {
   // Mark the property as 'Obsolete' with message and IsError as parameters.
   [ObsoleteAttribute("This property will be removed from future Versions.Use another property 'MyNewProperty'",false)]
      public string MyOldProperty 
      {
         get 
         {
            return "This is the value of the property";
         }
      }
      // Create another property.
      public string MyNewProperty 
      {
         get 
         {
            return "This is the value of the new property";
         }
      }


   // Get the Properties of the 'ObsoleteAttribute'.  
   public void GetPropertyAttributes()
   {
      // Retrieve all the attributes.
      AttributeCollection attributes = TypeDescriptor.GetProperties(this)["MyOldProperty"].Attributes;
          
      ObsoleteAttribute myAttribute = (ObsoleteAttribute)attributes[typeof(ObsoleteAttribute)];
      Console.WriteLine("The Message of the ObsoleteAttribute is :\n"+myAttribute.Message);
      Console.WriteLine("Usage of Obsolete as error is :"+myAttribute.IsError);
   }
   }

   public class TestObsolete4
   {
      static void Main(string[] args)
      {                 
         try
         {
            ObsoleteAttribute_Message myObsolete = new ObsoleteAttribute_Message();
            Console.WriteLine("The Message of Old Property is :"+myObsolete.MyOldProperty);
            Console.WriteLine("The Message of New Property is :"+myObsolete.MyNewProperty);
            myObsolete.GetPropertyAttributes();
         }
         catch(Exception e)
         {
            Console.WriteLine("The Exception is :"+e.Message);
         }         			
      } 

   }

    

Return to top


Property: TypeId (read-only)
Inherited
See base class member description: System.Attribute.TypeId

Summary
When implemented in a derived class, gets a unique identifier for this Attribute.
C# Syntax:
public virtual object TypeId {get;}
Remarks
As implemented, this identifier is merely the Type of the attribute. However, it is intended that the unique identifier be used to identify two attributes of the same type.

Return to top


Method: Equals(
   object obj
)
Inherited
See base class member description: System.Object.Equals
C# Syntax:
public virtual bool Equals(
   object obj
);

For more information on members inherited from System.Object click on the link above.

Return to top


Method: Finalize()
Inherited
See base class member description: System.Object.Finalize
C# Syntax:
~ObsoleteAttribute();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: GetHashCode()
Inherited
See base class member description: System.Attribute.GetHashCode

Summary
Returns the hash code for this instance.
C# Syntax:
public override int GetHashCode();
Return Value:
A 32-bit signed integer hash code.

Return to top


Method: GetType()
Inherited
See base class member description: System.Object.GetType
C# Syntax:
public Type GetType();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: IsDefaultAttribute()
Inherited
See base class member description: System.Attribute.IsDefaultAttribute

Summary
When overridden in a derived class, returns an indication whether the value of this instance is the default value for the derived class.
C# Syntax:
public virtual bool IsDefaultAttribute();
Return Value:
true if this instance is the default attribute for the class; otherwise, false.
Remarks
The default implementation of this class returns false, and must be implemented in the derived class to be useful to that class.

The implementation of this method in a derived class compares the value of this instance to a standard, default value obtained by some means, then returns a Boolean value that indicates whether the value of this instance is equal to the standard. The standard value is typically coded as a constant in the implementation, or stored programmatically in a field used by the implementation.

Return to top


Method: Match(
   object obj
)
Inherited
See base class member description: System.Attribute.Match

Summary
When overridden in a derived class, returns a value indicating whether this instance equals a specified object.
C# Syntax:
public virtual bool Match(
   object obj
);
Parameters:

obj

An Object to compare with this instance of Attribute.

Return Value:
true if this instance equals obj; otherwise, false.
Remarks
This method determines if one Attribute equals another. Its default implementation is the same as Attribute.Equals, which performs a value and reference comparison. Override this method to implement support for attribute values, such as flags or bitfields, that consist of components that are meaningful in themselves. For example, consider an attribute whose value is a binary field divided into a bitfield of flags. Two instances of this attribute have one flag in set in common while all the other flags differ. The Equal method cannot determine that the two instances have the same flag set, but the Match method can.

Return to top


Method: MemberwiseClone()
Inherited
See base class member description: System.Object.MemberwiseClone
C# Syntax:
protected object MemberwiseClone();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: ToString()
Inherited
See base class member description: System.Object.ToString
C# Syntax:
public virtual string ToString();

For more information on members inherited from System.Object click on the link above.

Return to top


Top of page

Copyright (c) 2002 Microsoft Corporation. All rights reserved.