在Web应用程序中,我调用Web服务来获取与特定客户端相关的文档的元数据。此调用可能会返回10到300之间的一组文档记录。 我想将检索到的数据存储在Dictionary(Key = docID - Value =元数据作为复杂类)中,并首先检查文档ID到Dictionary中。只有找不到,然后我才会调用Web服务(然后更新字典)。
如何在用户会话中维护该数据结构?
不同的用户可以访问该应用程序并请求有关不同(或相同)客户端的数据。最多可同时连接40个用户。
创建单例类来管理这个数据结构有多安全/高效?此外,避免它会增长太多。
有谁知道这种情况下的良好做法?
答案 0 :(得分:1)
我会使用Cache来存储Dictionary
。 Cache
在所有Sessions
内共享应用程序范围。
if(Cache["Documents"] != null){
var dict = (Dictionary<int,YourClass>)Cache["Documents"];
if(!dict.ContainsKey(documentID)){
dict.Add(documentID, yourComplexClass);
}
}else{
var dict = new Dictionary<int,YourClass>();
dict.Add(documentID, yourComplexClass);
Cache.Insert("Documents", dict);
}
答案 1 :(得分:0)
答案 2 :(得分:0)
我认为最好将该字典存储在Application store中,而不是用户会话。