使用反射获取方法名称和参数

Ash*_*Ash 9 .net c# memcached system.reflection

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

string GetName(int param1, int param2);
Run Code Online (Sandbox Code Playgroud)

它会返回:

string key = "GetName(1,2)";
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*eet 15

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

  • 使用Reflection,您可以获取参数名称:http://msdn.microsoft.com/en-us/library/system.reflection.parameterinfo.aspx (2认同)

Sco*_*Muc 4

您正在寻找的是拦截器。正如其名称所示,拦截器拦截方法调用,并允许您在调用方法之前和之后执行操作。这在许多缓存和日志框架中非常流行。