Use a property as a named attribute parameter. : Attribute Definition « Attribute « C# / CSharp Tutorial






using System;  
using System.Reflection; 
  
[AttributeUsage(AttributeTargets.All)] 
public class MyAttribute : Attribute { 
  public string remark;
 
  public int priority; 
 
  public string supplement; 
 
  public MyAttribute(string comment) { 
    remark = comment; 
    supplement = "None"; 
  } 
 
  public string Remark { 
    get { 
      return remark; 
    } 
  } 
 
  public int Priority { 
    get { 
      return priority; 
    } 
    set { 
      priority = value; 
    } 
  } 
}  
 
[MyAttribute("This class uses an attribute.", 
                 supplement = "This is additional info.", 
                 Priority = 10)] 
class UseAttrib { 
} 
 
class MainClass {  
  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 MyAttribute. 
    Type tRemAtt = typeof(MyAttribute); 
    MyAttribute ra = (MyAttribute) 
          Attribute.GetCustomAttribute(t, tRemAtt); 
 
    Console.Write("Remark: "); 
    Console.WriteLine(ra.remark); 
 
    Console.Write("Supplement: "); 
    Console.WriteLine(ra.supplement); 
 
    Console.WriteLine("Priority: " + ra.priority); 
  }  
}
Attributes in UseAttrib: MyAttribute
Remark: This class uses an attribute.
Supplement: This is additional info.
Priority: 10








10.4.Attribute Definition
10.4.1.Create Attribute
10.4.2.Attribute with supplement information
10.4.3.Positional vs. Named Parameters
10.4.4.Use a named attribute parameter.
10.4.5.Use a property as a named attribute parameter.
10.4.6.Assembly level attributes don't have to be in the assemblyinfo.cs file, but must be lised outside of any namespae definition.
10.4.7.A custom attribute based on bool value