首页新闻找找看学习计划

C#使用Attribute实现拦截器

0
悬赏园豆:10 [待解决问题]
复制代码
  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)

C#
Mad_Rabbit的主页 Mad_Rabbit | 菜鸟二级 | 园豆:305
提问于:2018-08-01 14:05
< >
分享
所有回答(5)
0

直接获取某个特性应用到了哪些类和哪些方法,好像没有哦。不过可以反过来做:通过反射获取程序集上的类,获取类和方法应用的特性,并判断该特性是不是你要找的那个特性,如果是就把类名和方法吗记录下来。

大豆男生 | 园豆:599 (小虾三级) | 2018-08-01 17:14
0

Attribute 只能用于标记

dudu | 园豆:41120 (高人七级) | 2018-08-01 19:20
0

postsharp 你可以看看 

通信的搞程序 | 园豆:824 (小虾三级) | 2018-08-02 08:07
0

已经自行解决

Mad_Rabbit | 园豆:305 (菜鸟二级) | 2018-08-15 16:29

怎么解决的

支持(0) 反对(0) 看,有灰机在飞 | 园豆:202 (菜鸟二级) | 2018-09-27 15:30

请问博主怎么解决的,我也想知道。

支持(0) 反对(0) 子思 | 园豆:200 (初学一级) | 2019-05-29 16:13
0

啥方案啊,我也需要这个

多安分 | 园豆:326 (菜鸟二级) | 2019-03-08 11:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册