method caller c# asp.net reflection stack-trace

c# - caller - Nombre de archivo de StackTrace desconocido



call get method c# (1)

Un poco más de google por aquí encontré este post.

Resulta que StackTrace tiene un constructor especial

public StackTrace(bool fNeedFileInfo)

Si necesita información de archivo para ser llenado. Ay

Algo extraño está sucediendo en mi código cuando uso StackTrace. Es casi como si no se estuviera cargando la información de depuración ... pero estoy ejecutando esto en la compilación DEBUG. Los archivos .pdb definitivamente están en el directorio bin y están actualizados. En serio, me he quedado sin ideas.

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" } }