1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Reflection;
6
7 namespace attribute
8 {
9 class Program
10 {
11 static void Main(string[] args)
12 {
13 Tester t = new Tester();
14 t.CannotRun();
15
16 Type tp = typeof(Tester);
17
18 MethodInfo methodinfo = tp.GetMethod("CannotRun");
19 TestAttribute myatt = (TestAttribute)Attribute.GetCustomAttribute(methodinfo, typeof(TestAttribute));
20 myatt.RunTest();
21 }
22 }
23 class Tester
24 {
25 [Test("Error Here")]
26 public void CannotRun()
27 {
28 Console.WriteLine("fuck this is a error");
29 }
30 }
31 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true)]
32 public class TestAttribute : System.Attribute
33 {
34 public TestAttribute(string name)
35 {
36 Console.WriteLine(name);
37 }
38 public void RunTest()
39 {
40 Console.WriteLine("test here");
41 }
42 }
43 }
44
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Reflection;
6
7 namespace attribute
8 {
9 class Program
10 {
11 static void Main(string[] args)
12 {
13 Tester t = new Tester();
14 t.CannotRun();
15
16 Type tp = typeof(Tester);
17
18 MethodInfo methodinfo = tp.GetMethod("CannotRun");
19 TestAttribute myatt = (TestAttribute)Attribute.GetCustomAttribute(methodinfo, typeof(TestAttribute));
20 myatt.RunTest();
21 }
22 }
23 class Tester
24 {
25 [Test("Error Here")]
26 public void CannotRun()
27 {
28 Console.WriteLine("fuck this is a error");
29 }
30 }
31 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true)]
32 public class TestAttribute : System.Attribute
33 {
34 public TestAttribute(string name)
35 {
36 Console.WriteLine(name);
37 }
38 public void RunTest()
39 {
40 Console.WriteLine("test here");
41 }
42 }
43 }
44