Csharp/C#教程:使用reflection获取方法名称和参数分享


使用reflection获取方法名称和参数

我正在尝试以一种方式编写一个基于方法名称和参数以编程方式为Memcached创建密钥的方法。 所以,如果我有一个方法,

string GetName(int param1, int param2); 

它会返回:

 string key = "GetName(1,2)"; 

我知道您可以使用reflection获取MethodBase,但是如何获取字符串中的参数值,而不是参数类型?

您正在寻找的是一个拦截器。 就像名称所说的那样,拦截器拦截方法调用,并允许您在调用方法之前和之后执行操作。 这在许多缓存和日志记录框架中非常流行。

您无法从reflection中获取方法参数值。 您必须使用调试/分析API。 您可以获取参数名称和类型,但不能获取参数本身。 抱歉…

这就是我想出来的(但是,它可能不是特别有效):

上述就是C#学习教程:使用reflection获取方法名称和参数分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 MethodBase method = MethodBase.GetCurrentMethod(); string key = method.Name + "("; for (int i = 0; i < method.GetParameters().Length; i++) { key += method.GetParameters().GetValue(i); if (i < method.GetParameters().Length - 1) key += ","; } key += ")"; 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/991365.html

(0)
上一篇 2021年12月23日
下一篇 2021年12月23日

精彩推荐