2013-06-24 28 views
0

我需要爲整個項目創建一個全局ArrayList或Array。全局數組/列表。類?處理程序?複製和粘貼?

我有一個asp.net C#項目。我從數據庫加載數據

事情是我需要在多個頁面中使用數據。 與其複製代碼並將其粘貼到所有頁面中,是否有辦法制作全局代碼?

我知道製作一個公共靜態類並從其他頁面調用它。我知道沒有太多是真正的全球性。

但是類怎麼樣?還是.ascx?處理程序?

什麼可以使用,哪個更好?

或者我必須複製並粘貼?

回答

2

您可以將數據放入Application變量中。在Web應用程序的情況下,靜態類不是更好的選擇。要設置應用程序變量

Application.Add("Key", data); 

獲取數據

HttpContext.Current.Application["Key"]; 
+0

應用程序高速緩存可供所有用戶使用,直到IIS重置或內存回收ASP.NET進程。如果您希望每個使用該應用程序的人都能訪問此數據列表,請使用此解決方案。 –

+0

你爲什麼說一個靜態類不起作用? – djs

+0

@djs ..你是對的。但是它更適合使用Application而不是靜態類。 –

0

使用Session緩存來存儲你的信息列表中的數據。這將使數據在內存中時可供多個頁面使用。由於每個用戶都有自己的會話緩存版本,因此此解決方案不允許在系統的所有用戶之間共享相同的數據;應用程序緩存處理該場景。

我也建議使用List<T>而不是ArrayList,因爲List<T>是類型安全的。