首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用CacheManager (或会话/视图状态)时保持密钥的唯一性

问在使用CacheManager (或会话/视图状态)时保持密钥的唯一性
EN

Stack Overflow用户
提问于 2012-06-22 03:05:39
回答 2查看 492关注 0票数 0

在使用微软CacheManager时,有没有避免密钥冲突的好方法?怎样才能阻止别人使用与我相同的密钥编写另一个类,而没有意识到它已经被使用了呢?每个网页都需要使用单独的cachemanager吗?

这将使它很难分享。我想知道关于使用会话的同样的事情。似乎没有好的方法来管理密钥并保持它们的唯一性。

我见过其他使用名称空间概念的缓存解决方案。如果我可以使用网页名称作为命名空间来保持事物的唯一性,那么这将是有意义的,然后是我想要共享的事物的全局命名空间。正如我所提到的,这可能也适用于会话。

即使是来自enterpriselibrary文档的这个示例也会让您认为,对于给定的员工id,没有什么好方法来存储超过一种类型的对象。

代码语言:javascript
复制
cache.Add(employeeId.ToString(), photoData, 
   CacheItemPriority.High, null, 
   new ICacheItemExpiration[] { expiry });

你几乎需要存储一个主对象,它包含了你需要的所有东西,这是我不想做的。或者你最终会得到一堆嵌套的字典。有没有关于如何最好地处理这个问题的想法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-22 04:09:53

只需创建一个命名方案,例如:"Path/To/File.Component.Object.Object2.Property“

这应该是独一无二的。然后为自己构建一些实用方法,这样您就不必手动复制粘贴字符串。

票数 1
EN

Stack Overflow用户

发布于 2012-06-22 03:10:49

根据您的用例,我看到了几种选择:

您可以将密钥存储在Resources或Settings

  • you中,也可以使用调用者生成的GUIDs

。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11145036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档