C#中有什么方法可以将随机方法作为参数传递?
解释我的问题:
我想编写一个简单的Logger-Tool,它使用类和方法名称报告传递的参数的方法的进入和离开:
我针对的日志文件是:
ENTERING: ClassOfDoom::MethodOfDoom( arg1={1} [int], arg2={true} [bool] )
LEAVING: ClassOfDoom::MethodOfDoom RETURNING 1 [int]
我想到的代码:
class ClassOfDoom {
// Remeber: MethodOfDoom is a _random_ method with _random_ arguments
public int MethodOfDoom(int arg1, bool arg2) {
Log.Entering(this, this.MethodOfDoom, arg1, arg2);
...
return Log.Returing(this, this.MethodOfDoom, 1);
}
}
有没有办法做到这一点?还是C#不够灵活?
提前致谢!
最佳答案
您可以使您的日志记录函数接受MethodBase
参数,并使用MethodBase.GetCurrentMethod将当前方法信息作为参数传递。
然后,在记录器中,可以检查其属性Name
和DeclaringType
以获取方法信息。另外,通过在日志记录函数中声明params object[] args
参数,可以轻松传递参数:
public static void Entering(object obj, MethodBase methodInfo,
params object[] args) {
Console.WriteLine("ENTERING {0}:{1}", methodInfo.DeclaringType.Name,
methodInfo.Name);
...
}
关于c# - 通过随机方法作为参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1136641/