2010-10-10 39 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 

无论哪种方式,你应该能够拿出具有零机会的一些相当长的字符串被重用...