1

所以我有一个函数,它依次调用一个以异常对象为参数的方法。

public DataSet SomeFunction()
{    
    try
    {

    }
    catch (Exception ex)
    {
            ErrorLogInDB.LogError(ex);
            throw;
    }
}

public static void LogError(Exception exception)
{
    StackTrace st = new StackTrace(exception, true);
    StackFrame frame = new StackFrame(0);

    MethodBase site = exception.TargetSite;

    string fileName = frame.GetFileName();
    string methodName = site.Name;
    int lineNo = frame.GetFileLineNumber();
    string errorDescription = exception.Message;
}   

从上面的函数中LogError我得到filenamenull,methodname是不正确的,也是line number. 如何解决?

4

1 回答 1

4

尝试...

StackTrace trace = new StackTrace(exception, true);
StackFrame stackFrame = trace.GetFrame(trace.FrameCount - 1);
string fileName = stackFrame.GetFileName();
string methodName = stackFrame.GetMethod().Name();
int lineNo = stackFrame.GetFileLineNumber();
于 2013-04-26T10:31:58.597 回答