我正在一个有2个子项目的网站上工作。子项目的引用方式如下:
=>我的网站引用了项目业务层
=>项目业务层具有对项目数据层
访客必须登录。信息保存在DB中。在我的数据库中,我有不同的配置信息,以使网站计算正确的信息。
例:
用户A登录到网站,配置信息存储在对象名称中: UserInfo 。 UserInfo类也是我的业务层的一部分。
之后我总是要从cookie或Session创建我的对象,并像这样调用我的Business Layer对象:
BL.CalculatePrice(UserInfo.RegionID)
BL.CalculateTotal(UserInfo.RegionID)
是否有办法在我的业务层项目中保持网页更改之间“用户”对象的状态,而无需在每次调用时发送引用(UserInfo.RegionID)网站?
答案 0 :(得分:1)
你可以使用各种各样的东西
以下是您可以查看的一些名称空间/想法
我个人选择MemoryCache(它是更新的,取代了httpCache),我在一个项目中使用它来实现一个半泛型类,它使用MemoryCache作为缓存层之间BLL& DAL。
或静态词典:创建UserInfo,将其放入词典,再次获取,更新值,然后将其删除(与内置缓存版本相同的场景)。
MemoryCache / Dictionary的优点是它们不需要对HttpContext的引用,因此可以在Web上下文之外使用。但这并不意味着您不能使用HttpContext(它更容易)。你只需要加权在dal / bll中使用它的优点/缺点。
对于MemoryCache,请务必查看:http://msdn.microsoft.com/en-us/library/dd941875.aspx 设置这些以防止服务器使用太多内存非常重要