一千萬個為什麽

搜索

可以/我應該在asp.net/c#中使用靜態類來共享數據嗎?


以下是我的情況:我正在建立一個供學校團體使用的在線系統。任何時候只有一所學校可以登錄系統,從那所學校你將獲得大約13個用戶。然後,他們進入一個教育應用程序,在這個應用程序中,他們必須合作完成任務,並從代碼的角度來看,在整個地方共享變量。

我在想,如果我設置一個帶有靜態屬性的靜態類來保存需要共享的變量,這可以節省我必須在數據庫中存儲/訪問變量,只要靜態變量都是在應用程序啟動時正確初始化並在最後清理。當然,我還必須在get和set方法上加上鎖,以使變量線程安全。

我心中的一些東西告訴我這可能是一種可怕的事情,但我不確定為什麽,所以如果人們可以在這種情況下給我他們的想法支持或反對使用靜態類,我會非常感激的。

最佳答案

如果要在網站上全局共享變量,則應使用任何具有名為“Application”的變量的asp頁面中的應用程序狀態(System.Web.HttpApplicationState)。

它就像Session變量一樣,將值存儲在哈希表中。唯一的事情是你必須管理鎖定才能保證線程安全,但如果我記得很清楚,有內置的方法或屬性來鎖定和解鎖變量。

Read more there : http://msdn.microsoft.com/en-us/library/ms178594(v=VS.100).aspx

轉載註明原文: 可以/我應該在asp.net/c#中使用靜態類來共享數據嗎?

猜你喜歡