在.NET Framework中,函数可以通过属性[CallerFilePath],[CallerMemberName],[CallerLineNumber]获取调用者的方法/文件/行号。在netstandard中,这不受支持。对此有何意义?有没有办法做到这一点?
我很擅长该函数可以获取调用者数据,而调用者不必直接传递它们,就像我能够使用属性一样。
答案 0 :(得分:2)
您可以使用课程StackTrace。它允许您将有关执行的信息作为Frame列表进行跟踪。 Frame 0
是你当前的元素,所以你的目标帧索引是1,如果有的话,例如。
StackTrace st = new StackTrace(true);
var frame = st.GetFrame(1);
var method = frame.GetMethod();
var file = frame.GetFileName();
var line = frame.GetFileLineNumber();
检查该类的其他方法