在ASP,C#和VB.Net中如何检索当前行号

Ret*_*der 4 c# vb.net asp.net vbscript asp-classic

ASP,C#,VB.NET是否有办法检索代码中的哪一行作为处理命令?

1 <%
2 response.write("Your on line " & retreiveCurrentLineNumber)
3 %>
Run Code Online (Sandbox Code Playgroud)

输出:你在线2

vcs*_*nes 6

你可以这样做:

var line = new StackFrame(0, true).GetFileLineNumber();
Run Code Online (Sandbox Code Playgroud)

请注意,有几点需要注意.

  1. 您需要确保可以访问源文件和PDB.
  2. 这将获得您所在方法的当前行,而不是您的确切位置.
  3. Jit可能会执行导致不正确信息的优化,例如内联方法.

对于VB.NET,它是一样的:

Dim line As Integer = New StackFrame(0, True).GetFileLineNumber()
Run Code Online (Sandbox Code Playgroud)

就经典ASP而言 - 我不相信这是可能的.