У нас есть проект библиотеки классов, который использует наши основные определения данных, функции sql и общие функции. Эта библиотека классов используется в проекте winform и нашем проекте asp.net.VB.net ASP.net класс Библиотека Проект Общая (статическая) переменная внутри общедоступного класса
В одном из классов мы имеем общие настройки и общие переменные.
Public Class Generic
Public Shared CurrentDeviceUniqueIdentifier As String
Public Shared TimeDiffFromServer As Long
Public Shared myLogger As Logger
....
end Class
И они доступны в библиотеке классов также в проекте winform/asp.net.
If Generic.myLogger IsNot Nothing Then Generic.myLogger.WriteLog(...)
Эти общие переменные не вызывает каких-либо неполадок Winform проект, так как есть один экземпляр этих переменных и система не имеет каких-либо проблем.
Но проект asp.net получает эти общие переменные, запутанные в разных сессиях, поскольку они являются общими.
Я мог бы преобразовать класс в модуль, так как система создана в VB вместо C#. Но не уверен, что это решит проблему. (Должно быть) В случае, если в будущем мы, возможно, захотим конвертировать в C#, и это не сработает.
Но мне было любопытно, есть ли другой способ обойти эту проблему, когда общие переменные блокируются в сеансе asp.net.
Это прекрасно, чтобы иметь общий метод или свойство, которое используется различными пользовательскими сеансами в приложении ASP.Net. Так в чем проблема? – Sunil
Статические (общие) значения * сами по себе * не вызывают никаких проблем. Но вы можете * использовать * их проблематичным образом, особенно в многопоточной многопользовательской среде. Что именно * * * проблема, которую вы видите? – David
[Как выбрать между ....] (http://www.articlesbase.com/programming-articles/how-to-choose-from-viewstate-session-application-cache-and-cookies-443393.html) – Steve