如何制作一个行为类似Session[]集合的集合?C#

本文关键字:集合 Session 何制作 一个 | 更新日期: 2023-09-27 18:28:51

我迫切需要在ASP.NET中镜像Session集合的行为(根据检索项时的行为)。我在这方面花了很长时间,但迄今为止一无所获。

会话类似于Dictionary,不同之处在于,如果您访问会话而该值不存在,则会得到null,而不是它抛出异常。这就是我需要复制的全部内容。

我试图重写索引器以添加一个null检查,但它抛出了一个堆栈溢出异常:

public class CriteriaCollection : Dictionary<string, object>
{
    private object GetData(string key)
    {
        object value = null;
        if (this.ContainsKey(key))
        {
            value = this[key];
        }
        return value;
    }
    private void SetData(string key, object value)
    {
        this[key] = value;
    }
    public new object this[string key]
    {
        get { return GetData(key); }
        set { SetData(key, value); }
    }
}

如何制作一个行为类似Session[]集合的集合?C#

创建了自己的索引器后,需要在自己的代码中调用旧的索引器。

将代码中的this[key]替换为base[key]