记录.NET Func <>的最佳方法是什么

det*_*pro 7 .net c# reflection

我有一个接受a的泛型方法,Func<int>我想记录传递给方法的Func.传入的函数有哪些属性可以帮助我理解它在做什么?

wsa*_*lle 5

您可以使用方法名称记录func.Method.Name,并且在MethodInfo类中还有一些其他有用的属性.但是,如果Func是匿名的,那么你将得不到一个非常有用的名字.

  • +1.您显然仍然可以记录匿名函数的名称,但它不会特别有用. (3认同)

det*_*pro 3

正如Jaroslav Jandek指出的那样,通过使用Expression<Func<T>>我可以获得有关传入方法的更多信息。具体来说:我发现该body属性具有作为字符串的匿名方法签名。

http://msdn.microsoft.com/en-us/library/system.linq.expressions.lambdaexpression.body.aspx