在项目开发过程中,我们会用到面向对象的多态来实现灵活的代码结构,比如接口或者反射等,
此时,我们输出日志时需要捕获源信息并输出,此时可以用到StackFrame类。
var sf= new StackFrame(true);
var methodInfo= sf.GetMethod();
string classFullName = methodInfo.ReflectedType.FullName;
string methodName = methodInfo.Name;
// 效果图如下
<span style="font-family: Arial, Helvetica, sans-serif;">// 以上代码写在具体的方法里面可以得到该方法的信息,另外说明一下StackFrame的其他用法</span>
var sf0= new StackFrame(0);
// 在StackFrame构造函数中输入int,表示堆栈上要跳过的帧数,比如这里输入0表示跳过0帧,也就是不跳帧还是当前方法。
假设我们输入的是StackFrame(1),则捕获的是调用当前方法的上一级方法的信息,把上面代码中的StackFrame(true)替换为StackFrame(1),输出结果如下:
根据以上基本用法,可以稍作修改应用在项目中。