类名的编译器服务
本文关键字:服务 编译器 | 更新日期: 2023-09-27 18:33:58
>出于日志记录原因,我一直在使用编译器服务库来获取调用函数的方法名称。
我想知道的是,是否有可能获得调用类?我已经浏览了所有属性,但没有成功。
直接来自微软:
public void TraceMessage(string message,
[CallerMemberName] string memberName = "",
[CallerFilePath] string sourceFilePath = "",
[CallerLineNumber] int sourceLineNumber = 0)
{
Trace.WriteLine("message: " + message);
Trace.WriteLine("member name: " + memberName);
Trace.WriteLine("source file path: " + sourceFilePath);
Trace.WriteLine("source line number: " + sourceLineNumber);
}
我真的很想避免StackFrame堆。
不幸的是,没有。 Caller
* 属性(至少目前)仅提供您列出的三个项目,而不提供类型。
如果您需要获取实际类型,使用堆栈信息实际上是到达那里的唯一方法。
不幸的是,没有办法做到这一点。 您列出的属性集是呼叫者信息功能提供的完整功能集。 这是指向涵盖可用选项的详细页面的链接。 类名不是其中之一。
http://msdn.microsoft.com/en-us/library/hh534540.aspx