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);
}
}
Output
Attributes in UseAttrib: MyAttribute
Remark: This class uses an attribute.
Supplement: This is additional info.
Priority: 10