作为后续对前一个问题我也问过"ASP.Net Architecture Specific to Shared/Static functions"共享方法在ASP.NET会话
我仍然在努力理解ASP.NET中使用共享方法的影响。
例如,让我们拿下面的代码。
Public Shared Function GetCategoryByID(ByVal CategoryID As Guid) As Category
If Not CategoryID.Equals(Guid.Empty) Then
Dim res As New Category
Using sqlConn As New SqlConnection(My.Settings.ConnectionString)
sqlConn.Open()
Using dr As IDataReader = CategoryDataLayer.GetCategoryByIDQuery(sqlConn, CategoryID)
Return CType(BaseDataLayer.FillObject(res, dr), Category)
End Using
End Using
Else
Return Nothing
End If
End Function
现在我想象客户机1连接,并与GUID {A20E625F-2333-4742-BFD9-05BE7649222D}运行此方法GetCategoryByID()从他们的会话。
现在让我们说,例如该过程即将执行以下行。
Using dr As IDataReader = CategoryDataLayer.GetCategoryByIDQuery(sqlConn, CategoryID)
此时客户机2组的运行的相同的共享的方法,但用GUID {6D806B82-FC7F-4124-AFB9-45E2689BC9F5}。
目前没有CategoryID变为{6D806B82-FC7F-4124-AFB9-45E2689BC9F5}并因此干扰客户端1,因为现在CategoryID发生了变化,因为这是共享方法?
有人请澄清?
PS:我很抱歉,本质上是一个重复的帖子,但回想起来,我觉得原帖中的答案不够清楚(至少对我而言)。也许我还不够具体...