В продолжение предыдущего вопроса я задал «Архитектура 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 подключил и запустил этот метод GetCategoryByID () из своего сеанса с guid {A20E625F-2333-4742-BFD9-05BE7649222D}.
Давайте теперь скажем, что, например, процесс собирается выполнить следующую строку.
Using dr As IDataReader = CategoryDataLayer.GetCategoryByIDQuery(sqlConn, CategoryID)
В этот момент клиент 2 запускает тот же общий метод, но с guid {6D806B82-FC7F-4124-AFB9-45E2689BC9F5}.
В этот момент CategoryID не становится {6D806B82-FC7F-4124-AFB9-45E2689BC9F5} и, следовательно, мешает клиенту 1, поскольку теперь CategoryID изменился, учитывая, что это общий метод?
Может кто-нибудь уточнить, пожалуйста?
PS: Я прошу прощения за то, что по сути является дубликатом поста, но в ретроспективе я не чувствую, что ответ в оригинальном посте был достаточно ясным (по крайней мере, для меня). Возможно, я тоже не был достаточно конкретен ...