public class MyAttribute : Attribute { public void Log() { //1. 获取到标记MyAttribute特性的方法的名字(SayHello) //2. 获取到SayHello所属的类的名字(Person) //3. 获取SayHello的所有参数(arg1, arg2) //4. 做些其他的事儿 } }
public class Person { [MyAttribute] public void SayHello(string arg1, int arg2) { Console.WriteLine("hello world!"); } }
想实现上面的MyAttribute特性,把这个特性加到SayHello方法上,就能在MyAttribute类里获取到SayHello方法的一些信息(如类Person,方法SayHello,SayHello的参数arg1,arg2)
已经自行解决
怎么解决的
请问博主怎么解决的,我也想知道。
直接获取某个特性应用到了哪些类和哪些方法,好像没有哦。不过可以反过来做:通过反射获取程序集上的类,获取类和方法应用的特性,并判断该特性是不是你要找的那个特性,如果是就把类名和方法吗记录下来。
Attribute 只能用于标记
postsharp 你可以看看
啥方案啊,我也需要这个