Web项目之外的HttpApplicationState(类库)

时间:2013-07-19 18:01:02

标签: asp.net httpapplicationstate

我有一个ASP.net Web应用程序,它依赖于一个单独的DLL类库项目来实现其业务逻辑。但是,我想在DLL项目中使用全局HttpApplicationState。但这似乎是一个特定于Web项目的实现。

当然,我可以让特定类的构造函数(或方法)将HttpApplicationState作为参数,但我想知道是否有更有说服力的方法。我意识到我正在创建一些设计问题,但我真的希望能够在我的业务逻辑中利用全局内容。

2 个答案:

答案 0 :(得分:2)

使用HttpContext.Current.Application您应该能够访问外部类中的HttpApplicationState。

更新

但我同意John Saunders的观点 - 业务逻辑不应该知道从哪里调用它。

答案 1 :(得分:1)

您应该尝试分离Web应用程序和类库之间的关注点。类库应该尽可能少地了解Web应用程序调用它们的事实。特别是,它们不应该使用会话状态或应用程序状态。实际上,他们最好不要引用System.Web.dll!

让Web应用程序将类库所需的应用程序状态传递给类库。类库不应该知道数据来自Application状态。

这也使得对类库进行单元测试变得更加容易,因为可以从单元测试框架中调用它。