Use a property as a named attribute parameter : Attribute « Language Basics « C# / C Sharp






Use a property as a named attribute parameter

Use a property as a named attribute parameter
/*
C#: The Complete Reference 
by Herbert Schildt 

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/


// Use a property as a named attribute parameter. 
  
using System;  
using System.Reflection; 
  
[AttributeUsage(AttributeTargets.All)] 
class RemarkAttribute : Attribute { 
  string remarkValue; // underlies remark property 
 
  int pri_priority; // underlies priority property 
 
  public string supplement; // this is a named parameter 
 
  public RemarkAttribute(string comment) { 
    remarkValue = comment; 
    supplement = "None"; 
  } 
 
  public string remark { 
    get { 
      return remarkValue; 
    } 
  } 
 
  // Use a property as a named parameter. 
  public int priority { 
    get { 
      return pri_priority; 
    } 
    set { 
      pri_priority = value; 
    } 
  } 
}  
 
[RemarkAttribute("This class uses an attribute.", 
                 supplement = "This is additional info.", 
                 priority = 10)] 
class UseAttrib { 
  // ... 
} 
 
public class NamedParamDemo11 {  
  public static void Main() {  
    Type t = typeof(UseAttrib); 
 
    Console.Write("Attributes in " + t.Name + ": "); 
 
    object[] attribs = t.GetCustomAttributes(false);  
    foreach(object o in attribs) { 
      Console.WriteLine(o); 
    } 
 
    // Retrieve the RemarkAttribute. 
    Type tRemAtt = typeof(RemarkAttribute); 
    RemarkAttribute ra = (RemarkAttribute) 
          Attribute.GetCustomAttribute(t, tRemAtt); 
 
    Console.Write("Remark: "); 
    Console.WriteLine(ra.remark); 
 
    Console.Write("Supplement: "); 
    Console.WriteLine(ra.supplement); 
 
    Console.WriteLine("Priority: " + ra.priority); 
  }  
} 



           
       








Related examples in the same category

1.Subclass System.Attribute
2.A simple attribute exampleA simple attribute example
3.Use a named attribute parameterUse a named attribute parameter
4.Creating and using a class attribute.
5.Attribute in class inheritance
6.Defining New Attribute Classes
7.Use AttributeUsage
8.Demonstrate the Conditional attributeDemonstrate the Conditional attribute
9.Define contant and use it in Conditional attribute
10.Demonstrate the Obsolete attributeDemonstrate the Obsolete attribute
11.Illustrates use of the Obsolete attribute
12.Compiles into a library defining the RamdomSupplier attribute and the RandomMethod attribute
13.Shows the use of assembly attributes
14.How to create a custom attributeHow to create a custom attribute
15.Illustrates use of the Conditional attributeIllustrates use of the Conditional attribute
16.Illustrates the GetCustomAttributes methodIllustrates the GetCustomAttributes method
17.demonstrates the flags attribute of an enumeration