1

在全局 ASAX 文件中的代码中,我看到了以下代码:

Session("ErrorSource") = lastError.Source
Session("ErrorPATH") = Request.Path.ToString()

如果我右键单击 Session 然后选择 Goto definition 我得到:

Public Default Property Item(ByVal name As String) As Object
     Member of: System.Web.SessionState.HttpSessionState

上面清楚了为什么我们没有

Session.Item("ErrorSource") = lastError.Source (因为 item 是 Session 的默认属性)

我不明白 Session 类本身是在哪里定义的?

我希望有类似 SessionState.HttpSessionState("ErrorSource")

不是 Session.Item("ErrorSource") 。那么Session是在哪里定义的呢?

4

1 回答 1

4

SessionHttpSessionState是您当前正在开发的类看起来正在继承的对象类型的成员System.Web.UI.Page(它也可能继承System.Web.UI.UserControl,这是您继承的两个主要类Session)。

当您在 Visual Studio 中选择“转到定义”时,它会找到实际定义该成员的位置,即使它没有在当前类中定义(而是在基类或接口中)

于 2013-06-10T13:12:38.290 回答