Netstandard中的CallerMemberName等价

时间:2017-08-19 18:52:22

标签: c# .net-standard

在.NET Framework中,函数可以通过属性[CallerFilePath],[CallerMemberName],[CallerLineNumber]获取调用者的方法/文件/行号。在netstandard中,这不受支持。对此有何意义?有没有办法做到这一点?

我很擅长该函数可以获取调用者数据,而调用者不必直接传递它们,就像我能够使用属性一样。

1 个答案:

答案 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();

检查该类的其他方法