用于存储从Web Service检索的客户端数据的数据结构

时间:2012-02-21 16:09:16

标签: c# asp.net performance data-structures dictionary

在Web应用程序中,我调用Web服务来获取与特定客户端相关的文档的元数据。此调用可能会返回10到300之间的一组文档记录。 我想将检索到的数据存储在Dictionary(Key = docID - Value =元数据作为复杂类)中,并首先检查文档ID到Dictionary中。只有找不到,然后我才会调用Web服务(然后更新字典)。

如何在用户会话中维护该数据结构?
不同的用户可以访问该应用程序并请求有关不同(或相同)客户端的数据。最多可同时连接40个用户。

创建单例类来管理这个数据结构有多安全/高效?此外,避免它会增长太多。

有谁知道这种情况下的良好做法?

3 个答案:

答案 0 :(得分:1)

我会使用Cache来存储DictionaryCache在所有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)

您可以将词典存储在会话中。

不确定单身人士会在哪里 - 只需使用会话管理器。

请参阅http://msdn.microsoft.com/en-us/library/ms178581.aspx

答案 2 :(得分:0)

我认为最好将该字典存储在Application store中,而不是用户会话。