C# 堆栈跟踪文件名未知
在我使用StackTrace的代码中发生了一些奇怪的事情。这几乎就像调试信息没有被加载。。。但是我在调试版本上运行这个.pdb文件确实在bin目录中并且是最新的。我已经完全没有想法了:C# 堆栈跟踪文件名未知,c#,asp.net,reflection,stack-trace,C#,Asp.net,Reflection,Stack Trace,在我使用StackTrace的代码中发生了一些奇怪的事情。这几乎就像调试信息没有被加载。。。但是我在调试版本上运行这个.pdb文件确实在bin目录中并且是最新的。我已经完全没有想法了: public class TraceHelper { private static IDictionary<string,int> TraceDictionary = new Dictionary<string,int>(); public TraceHelper(int
public class TraceHelper
{
private static IDictionary<string,int> TraceDictionary = new Dictionary<string,int>();
public TraceHelper(int duration)
{
...
TraceDictionary[InternalGetCallingLocation()]+=duration;
...
}
public static string InternalGetCallingLocation ()
{
var trace = new System.Diagnostics.StackTrace();
var frames = trace.GetFrames();
var filename = frames[1].GetFileName(); //<<-- this always returns null
return frames[0].ToString(); //this returns:
// "InternalGetCallingLocation at offset 99 in file:line:column <filename unknown>:0:0"
}
}
公共类跟踪帮助器
{
私有静态IDictionary TraceDictionary=new Dictionary();
公共跟踪帮助器(int持续时间)
{
...
TraceDictionary[InternalGetCallingLocation()]+=持续时间;
...
}
公共静态字符串InternalGetCallingLocation()
{
var trace=new System.Diagnostics.StackTrace();
var frames=trace.GetFrames();
var filename=frames[1].GetFileName();//在搜索中发现了更多的内容
原来StackTrace有一个特殊的构造函数
public StackTrace(bool fNeedFileInfo)
如果需要填充文件信息。哎哟能否显示完整的跟踪?需要更多上下文帮助。