所以我希望登录一个dll,每次调用log.put时都会记录一些自动生成的信息。我似乎无法从dll中获取调用方法名称,无论使用堆栈跟踪...
void main() {
log.put(Severity.information, "this is a test");
}
//inside dll
Log.put(Enum s, string msg = ""){
StackTrace st = new StackTrace(new StackFrame(true)); //get stacktrace
//returns put as expected
string caller = st.GetFrame(0).GetMethod().ToString();
//returns put not expected, I was expecting main
string caller2 = st.GetFrame(st.FrameCount - 1).GetMethod().ToString();
//throws null reference
string caller3 = st.GetFrame(1).GetMethod().ToString();
}
基本上,我真的不想在我的所有catch语句中对每个方法名称和dateTime调用进行硬编码,我想只是调用它并将其记录下来。
这可能吗?