: , :
var exc = Server.GetLastError();
var frame = new StackTrace(exc, true).GetFrame(0);
var sourceFile = frame.GetFileName();
var lineNumber = frame.GetFileLineNumber();
: ASP.NET
, .NET, , System.Web.FormatterWithFileInfo.GetSourceFileLines().
...
for (int i=1; ; i++) {
string sourceLine = reader.ReadLine();
if (sourceLine == null)
break;
if (i == lineNumber)
sb.Append("<font color=red>");
if (i >= lineNumber-errorRange && i <= lineNumber+errorRange) {
fFoundLine = true;
String linestr = i.ToString("G", CultureInfo.CurrentCulture);
sb.Append(SR.GetString(SR.WithFile_Line_Num, linestr));
if (linestr.Length < 3)
sb.Append(' ', 3 - linestr.Length);
sb.Append(HttpUtility.HtmlEncode(sourceLine));
if (i != lineNumber+errorRange)
sb.Append("\r\n");
}
if (i == lineNumber)
sb.Append("</font>");
if (i>lineNumber+errorRange)
break;
}
...
, , lineNumber , .