0

可以在私有/公共属性中获取/设置会话变量吗?

private List<FileAttachment> fileAttachments;
public List<FileAttachment> FileAttachments
{
    get
    {
        if (Session["key"] != null)
        {
            fileAttachments = (List<FileAttachment>)Session["key"];
        }
        return fileAttachments;
    }
    set
    {
        fileAttachments = value;
        Session["key"] = fileAttachments;
    }
}

这里的目标是我希望容器类(该用户控件的属性所在)能够List<T>根据实体设置并显示存储在数据库中的现有附件。

4

1 回答 1

1

那不是很安全。List<T>不是线程安全的。

将列表分配给属性后,您永远不能修改列表,因为其他请求线程可能正在读取它。

因此,您应该将其设为 aReadOnlyCollection<T>而不是List<T>.
(并确保您的FileAttachment类是不可变的或线程安全的)


除此之外,这取决于财产在哪里。
如果它在控件或页面上,那很好。

于 2012-05-08T03:21:42.170 回答