2010-10-10 42 views
0

我正在寫asp.net中的webcontrol,它必須去從API獲取信息。獲取最新信息並不重要,檢索信息的速度非常緩慢,所以我寧願緩存信息並每隔5分鐘更新一次。asp.net webcontrol caching

使用Context.Cache可能會使用相同的名稱,但我找不到在控件中執行緩存的另一種方式,因此存在潛在風險。

有沒有人有任何其他的想法?

(使用asp.net 2.0)。

+0

你是什麼意思*某人可以使用相同的名稱*?有人,意思是其他開發人員? – 2010-10-10 10:00:07

+0

是的。這個想法是,它可能是有人下載和使用該組件。 – 2010-10-11 08:36:14

回答

0

聽起來像Context.Cache正是你需要存儲這種信息。緩存對象已本地化爲您的應用程序,因此只能由應用程序中的其他代碼更改。

您可以隨時給您的緩存鍵很長,大概是無用的名稱等,並保存你的類內的關鍵...

Private const CacheKey as String = "e92a627b-3a9f-46da-a182-d73b44fe87ad" ' A random guid 

Cache.Item(CacheKey) = TheRefreshedData ' etc 

當我寫這個答案或許我意識到你在談論你的conntrol在其他人的應用程序中重新使用...因爲您的控制權被重新分配或提供下載。在這種情況下,你總是可以前綴您的控制緩存關鍵是「合理」的獨特...

Private const CacheKey As String = "MyCompany.MyControl.MyData" 

Cache.Item(CacheKey) = TheRefreshedData ' etc 

無論哪種方式,你應該能夠拿出具有零機會的一些相當長的字符串被重用...